作者:vicai
之前用UNRAID宿主机搭建NAS,最容易上手的就是它的文件管理,WebGUI界面可以一目了然的看到硬盘列表,快速挂载/卸载硬盘,甚至每个硬盘都可以直接点击进去浏览有哪些文件:
新手装完PVE,到磁盘列表一看,除了对磁盘进行擦写,啥都操作不了,看来PVE就是不鼓励用户在宿主机管理文件,非得去装个虚拟机,倒逼小白去学命令行。。
得,那就Shell搞起呗
PVE本质是Linux系统,众所周知Linux查看文件的基本命令是
ls
root用户根目录下执行看到的自然是root下的文件。但其实PVE系统盘下有哪些目录小白用户不关心,小白关心的是如何访问自己之前在硬盘中存储的个人数据。PVE是根据磁盘编号来识别硬盘的,访问硬盘首先要了解硬盘所在路径或其UUID。使用命令
ls -al /dev/sd*
ls -al /dev/nvme*
可以查看磁盘信息
/dev/sd*表示机械硬盘,用sd+字母+数字表示,字母表示硬盘序号,数字表示分区。例如/dev/sdb1表示第二块机械硬盘的第一个分区
/dev/nvme*...表示固态硬盘,用nvme数字+n数字+p数字表示,第一个数字代表硬盘序号,n后面的数字代表namespace插槽序号,p后面的数字表示partition分区序号。例如/dev/nvme0n1p2 表示固态硬盘0位于第1插槽的的第2分区 参考https://www.zhihu.com/question/438590514
拿我这台PVE举例,主机上安装了三块硬盘,一块512G的固态,一块1T的固态以及一块1T的机械硬盘。512G的固态是PVE的系统盘,没有挂载之前,只能访问这个系统盘里的文件。
对照节点-磁盘界面可以看到:
/dev/sda是1T的HGST机械硬盘,它有/dev/sda1和/dev/sda2两个分区
/dev/nvme1n1 是1T的固态硬盘,它只有/dev/nvme1n1p1一个分区
/dev/nvme0n1 是512G的固态硬盘,它有p1,p2,p3三个分区
现在需要访问 /dev/sda 和 /dev/nvme1n1 这两块硬盘内的文件。在Linux下一切都是文件,访问之前得先将其分区挂载到系统已有的目录下(注意挂载的是分区不是硬盘),执行命令:
mount -t ext4 /dev/nvme1n1p1 /mnt
#-t表示指定分区的文件系统类型,如ext4, ntfs等
#/mnt 是pve系统下的目录
如果想挂载在一个新的目录下则需要先创建目录:
mkdir -p /mnt/ssd1T
#在/mnt目录下创建一个名为ssd1T的目录
#-p会检测是否已存在父级目录(parent),没有就创建一个
然后再挂载:
mount -t ext4 /dev/nvme1n1p1 /mnt/ssd1T
挂载/dev/sda 这块硬盘同理
mount -t ntfs-3g /dev/sda2 /mnt/hdd1T
#pve本身不支持ntfs格式,需要先安装ntfs-3g包
现在可以通过ls命令来查看磁盘中的目录和文件列表了:
ls /mnt/ssd1T
ls /mnt/hdd1T
也可以查看子目录下的文件:
ls -R /mnt/ssd1T
#-R表示tree,以目录树的方式浏览目录内容
不过对小白来说,PVE下命令行浏览文件始终不如图形界面直观,作为一个日常功能,很想吐槽PVE这群UI工程师,都有WebGUI了,学学UNRAID,磁盘那里加个挂载按钮和浏览按钮有那么难么,点击“挂载”从系统目录中选择或创建一个目录不就好了
可怜连创建SMB/NFS都没有自带,还得手动部署相关服务,下篇文章写吧