PVE找不到外接硬盘?你还没有挂载吧
PVE找不到外接硬盘?你还没有挂载吧
JonyLee我的小主机内置有一个2.5寸SATA硬盘位,我当时正好手上有一块旧的三星2.5寸SATA SSD,就把它装上了准备暂时做虚拟机的存储盘。
在PVE的文本界面的磁盘
选项里,能看到硬盘,但是当我想要为虚拟机添加磁盘的时候,死活找不到这块盘。
后来网上查了才知道,在PVE中除了系统盘,其他硬盘都是需要手动挂载的,挂载之后PVE创建虚拟机、给虚拟机增加磁盘或者开启备份时,选择存储才会出现这个磁盘的选项。
其实Linux系统本来外部设备就都这样,需要先挂载才能使用的,但是这个PVE的web界面的磁盘选项里,已经显示这个设备了,我还以为它已经自动挂载了呢,然而并没有!
昨天写的用移动硬盘作为PVE虚拟机快照备份的存储,也是得要先手动挂载磁盘才能用。那这里就写一下基本的挂载操作,供新手参考。玩其他Linux系统的NAS,其实也能用到,挂载操作是一样的。
步骤如下:
一、确认要挂载的设备路径
接入硬盘后,可以通过ssh命令查看移动硬盘的分区信息。pve系统也可以直接从web端查看。
1. 使用ssh及命令行操作:
可在连接pve的终端中,使用如下命令:
1 | lsblk # 或使用 fdisk -l |
返回的结果,使用lsblk
返回的是文件结构目录树,如下:
1 | root@pve:~# lsblk |
这个命令对磁盘及分区显示比较清晰,但是在挂载的时候,要记得分区前要加/dev
,例如上例,加入确认移动硬盘为111.8G那个,则挂载的分区应为/dev/sda1
,而不是/sda
、/sda1
或者/sda/sda1
,这里要注意一下。
而使用另一个命令fdisk -l
,则会显示更详细的结果,示例如下:
1 | root@pve:~# fdisk -l |
用此命令,可根据Disk model
也就是设备名称,确认你的移动硬盘,挂载分区应改从Device
下面找,我示例里该硬盘只有一个分区,如果你移动硬盘有多个分区,需要挂载哪个,根据分区大小Size
来寻找,挂载路径直接为前面显示的:/dev/sda1
。
2. Web界面查找设备信息
PVE的web界面里,点左侧的pve根节点,再点中间的磁盘
选项,右侧会直接显示移动硬盘设备和它的分区,如下如:
此时确认需要挂载的备份存储分区,例如上图显示的/dev/sda1
。
二、挂载外接设备
挂载移动硬盘等操作只能使用命令行进行
1. 临时挂载
如果是临时备份使用或其他临时使用,可以使用临时挂载。
创建挂载目录,假设为ssd-120g
,一般是挂载到pve系统的/mnt
文件夹下面。执行临时挂载,命令带rw
赋予读写权限,并执行可写入测试(以下两行命令分别执行):
1 | mkdir -p /mnt/ssd-120g # 创建挂载目录 |
2. 永久挂载
如果是内置硬盘,或者是准备作为永久使用的外接硬盘,可以使用永久挂载,这样当机器重启的时候,它就会自动挂载。否则机器重启还需要再次手动挂载。
查看硬盘的UUID:
1 | blkid /dev/sda1 |
示例返回结果如下:
1 | root@pve:~# blkid /dev/sda1 |
在 /etc/fstab
中添加挂载信息。fstab是一个配置文件,开机的时候会加载,从而实现开机挂载硬盘功能。
① 简便方法,可使用echo
命令直接写入:
1 | echo eda1af02-5671-4e9d-a72e-535c1935106f /mnt/ssd-120g ext4 defaults 0 0 >> /etc/fstab |
以上命令解释:echo命令是控制台打印,echo …>>
是将控制台打印转变成输入到某个文件中,本次输入到了/etc/fstab
文件中,也就是在/etc/fstab
文件中加入eda1af02-5671-4e9d-a72e-535c1935106f /mnt/ssd-120g ext4 defaults 0 0
这行文字。
写入fstab文件的格式为:要挂载的硬盘UUID 挂载的目录 分区的格式 挂载的参数
。后面两个数字,第一个数字是dump工具会根据这个数字来决定什么时候备份,第二个数字表示fsck工具检查的优先级,一般也可以用0 0
。
② 也可以通过命令行文本编辑工具nano或者vim等来编辑fstab文件并保存。一般系统都内置了 nano 编辑器,输入命令打开文件:
1 | nano /etc/fstab |
下面会有操作提示,提示中^
代表Ctrl
键。添加完按Ctrl+X
退出,会提示是否保存更改,按Y
保存退出即可。
但是我觉得对新手来说还是有点麻烦。
③ 还可以通过前面我分享过的sftp工具FileZilla,直接用记事本打开编辑保存。
通过SFTP连接上服务器之后,在右侧找到fstab文件右键,点查看/编辑
,即可通过记事本打开它。
编辑完记得保存关闭。
三、其他说明
不管何种挂载,拔出设备前务必在命令行执行卸载
umount /mnt/你的设备挂载目录
,有点类似于Windows里的点击弹出硬盘操作,避免数据损坏。可能有细心的朋友看到我截图里挂载的,并没有使用UUID而是设备路径。其实硬盘挂载有好几种方式,建议优选使用UUID,因为设备路径的方式虽然直观简单,但是设备名可能变化, 当系统连接的存储设备数量或顺序发生变化时(例如新增/移除硬盘),设备名(如
sdb1
)可能变为sdc1
或sda1
,导致挂载失败。而设备UUID是唯一的,不会存在这个问题。如果挂载移动硬盘等是使用的NTFS/exFAT文件系统,挂载写入可能会出现
Read-only file system
错误。这是因为Linux原生默认不支持该文件系统写入操作,这时就需要安装ntfs-3g
驱动,使用带参数挂载,具体下期分享吧。