Linux中硬盘挂载分临时挂载和永久挂载(开机自动挂载)到指定目录,这时候需要正确且安全的配置挂载才能保证系统安全稳定的运行
本文围绕基于宿主机ProxmoxVE(PVE)中的VPS进行操作,同时本指南也适用于所有Linux 大家可酌情参考。
向Linux VPS中添加硬盘
基于宿主机ProxmoxVE(PVE) 向VPS中添加硬盘分俩种情况:
- 添加虚拟磁盘
- 添加物理磁盘(直通)
1. 添加虚拟磁盘
通过WebGUI 面板 目标虚拟机-> 添加 -> 硬盘

按需选择存储位置 硬盘大小 随即添加成功
2. 添加物理磁盘(直通)
进入ProxmoxVE(PVE)的SSH,或者直接进入PVE管理网页Shell
查看你现在的宿主中存储设备:
ls /dev/disk/by-id
输出:
root@admin:~# ls /dev/disk/by-id
ata-INTEL_SSDSWERD256G8_PHLA908104FA256CCC
ata-INTEL_SSDSWERS256G8_PHLB908104FA256AAA
ata-ST10000NM001G-2VCXZ453_ZLW05423431YFK
ata-ST10000NM001G-XCVV5433_ZLW02523459A0
...
如主机上有两块硬盘:
- 2个intel 256G SSD
- 2个是希捷10T的硬盘
挂载磁盘到虚拟机
设定:虚拟机ID 100
磁盘挂载方式 sata 序号0
挂载磁盘 ata-INTEL_SSDSWERS256G8_PHLB908104FA256AAA
如果需要磁盘格式化等操作则先执行下面磁盘管理操作
命令:
qm set 100 -sata0 /dev/disk/by-id/ataINTEL_SSDSWERS256G8_PHLB908104FA256AAA
此时 宿主机对VPS硬盘添加的过程已完成,接下来就可以在目标VPS中开机进行下一步操作了
2. 在目标Linux中进行挂载操作
Linux中对磁盘的挂载也是分俩种操作:
- 临时挂载
- 永久挂载
挂载前如果你的磁盘是全新添加的那么还需要操作一下分区以及格式化操作,但如果你的磁盘是从其他Linux迁移过来 那么磁盘分区格式化这步骤一定不能操作 否则将丢失资料
数据无价 谨慎操作!
进入目标Linux Shell 输入命令
fdisk -l
假设 VPS中系统盘为一块128GB 刚刚全新添加了一块 800G磁盘
那么将会输出
...
Disk /dev/vda: 128 GiB, 137438953472 bytes, 268435456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x32f6cdd1
Device Boot Start End Sectors Size Id Type
/dev/vda1 2048 268435455 268433408 128G 83 Linux
Disk /dev/vdb: 800 GiB, 858993459200 bytes, 1677721600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x34205a37
Device Boot Start End Sectors Size Id Type
...
由此得知 新加的磁盘位置为 /dev/vdb
且没有任何分区,我们将要对它进行分区
使用fdisk操作磁盘
确定设备路径后
如需要操作 /dev/vdb
输入命令
fdisk /dev/vdb
输出
root@admin:~# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
开始在fdisk工具中操作磁盘 输入m
阅读命令功能
新磁盘分区
此步骤会造成资料丢失 一定要按需选择
命令
Command (m for help): p
查看选定的/dev/vdb
磁盘分区 以便在此确认是正确,输出:
Command (m for help): p
Disk /dev/vdc: 800 GiB, 858993459200 bytes, 1677721600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x34205a37
Device Start End Sectors Size Type
磁盘为全新磁盘 没有任何分区,紧接着输入 n
来添加一个新分区

输入 p
来创建一个主分区,如果想将/dev/vdb分成一个区,全部按照默认配置,一直“回车”即可

按照提示输入w
对刚才的修改进行保存
分区操作已经完成,输入命令进行查看
fdisk -l
输出
Disk /dev/vdb: 800 GiB, 858993459200 bytes, 1677721600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x34205a37
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 1677721599 1677719552 800G 83 Linux
然后格式化分区以便能后续挂载操作,当然如果你挂载的磁盘是已有资料的那么请跳过这些步骤直接去操作最终的挂载。
格式化全新的分区/dev/vdb1
以下命令将会把/dev/vdb1
分区格式为 ext4 格式
mkfs.ext4 /dev/vdb1
操作完分区 或 挂载原有磁盘后 假设目前得到了/dev/vdb1
分区 接下来就是把/dev/vdb1
挂载到系统中进行使用。
临时挂载
临时挂载分区需要准备一个目录,目录必须为空。常见的目录位置为
/mnt/xxx
/data
/xxx
...
目录的定义可以非常个性化,当然系统建议是在 /mnt
下进行挂载,我们设定 挂载到/data
下
先创建目录
mkdir /data
然后使用临时挂载目录命令
mount /dev/vdb1 /data
输入命令df -Th
进行验证
root@admin:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 795M 1.2M 794M 1% /run
/dev/vda1 ext4 48G 9.8G 36G 22% /
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda2 ext4 2.0G 306M 1.5G 17% /boot
/dev/vda1 ext4 126G 3.6G 116G 3% /insilen
/dev/vdb1 ext4 787G 0G 787G 0% /data
/data
目录已经对应了/dev/vdb1
磁盘了
但请注意,临时挂载命令仅此次开机有效,重启之后久不挂载了,而且临时挂载是以系统对应的简单磁盘编号进行区分。如果系统更改了磁盘的顺序或添加了磁盘 那么/dev/vdb1
可能会有变动,导致挂载出错。 如果要长期稳定的挂载一个磁盘则需要使用永久挂载方法
永久挂载
永久挂载磁盘和上面的临时挂载稍有区别,
永久挂载分区需要准备一个目录,目录必须为空。常见的目录位置为
/mnt/xxx
/data
/xxx
...
目录的定义可以非常个性化,当然系统建议是在 /mnt
下进行挂载,我们设定 挂载到/data
下
先创建目录
mkdir /data
然后定位好目标磁盘的简单路径编号,如/dev/vdb1
,获取这个磁盘分区对应的ID
blkid
输出
root@admin:~# blkid
/dev/vda1: UUID="32ebbfe8-e8b2-4a7f-b6da-c05wer224b13" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="32f6cdd1-01"
/dev/vdb1: UUID="7d96452e-b527-40cb-9afc-ae043225a51b" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="34205a37-01"
/dev/vda2: UUID="17352f06-c329-49e5-658b-5422fs49c86d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="46da7501-183f-4bdc-8bd7-81e16032b79d"
/dev/vda1: PARTUUID="d023d06d-f7ac-48d8-b7f5-0dbdcd01a5d8"
从输出 得知 /dev/vdb1
的 UUID为7d96452e-b527-40cb-9afc-ae043225a51b
然后编辑fstab
nano /etc/fstab
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/disk/by-uuid/17352f06-c329-49e5-658b-5422fs49c86d /boot ext4 defaults 0 1
/swap.img none swap sw 0 0
# User Data Disk 800G
UUID=7d96452e-b527-40cb-9afc-ae043225a51b /data ext4 defaults 0 0
向fstab
添加了 #User Data Disk 800G
部分,然后使用 Ctrl + x
并选择y
确定修改保存
因为直接修改了启动环境,如果配置有误可能会导致Linux无法启动。所以在修改了fstab
后不要着急重启。而是使用一下命令来验证是否挂载成功
mount -a
输入命令df -Th
进行验证
root@admin:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 795M 1.2M 794M 1% /run
/dev/vda1 ext4 48G 9.8G 36G 22% /
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda2 ext4 2.0G 306M 1.5G 17% /boot
/dev/vda1 ext4 126G 3.6G 116G 3% /insilen
/dev/vdb1 ext4 787G 0G 787G 0% /data
/data
目录已经永久挂载了/dev/vdb1
磁盘了
永久挂载后,如果磁盘有变动或打算变动 那么要先去编辑
fstab
文件 取消里面的挂载命令,再去做变动。否则Linux将无法正常进如系统,只能去救援模式里编辑fstab
比较麻烦。
Zimri 收集整理,欢迎转载,请注明出处:https://www.insilen.com/post/549.html