服务器测评网
我们一直在努力

Linux虚拟机添加新硬盘后如何分区格式化?

第一步:在虚拟机平台中添加硬盘

此步骤在虚拟机管理软件中完成,而非在Linux系统内部,无论是VMware, VirtualBox, KVM还是Hyper-V,基本原理相似。

Linux虚拟机添加新硬盘后如何分区格式化?

  1. 关闭虚拟机:为了安全地添加硬件,请务必先完全关闭正在运行的虚拟机。
  2. 进入虚拟机设置:在虚拟机管理界面中,选中目标虚拟机,进入“设置”或“配置”菜单。
  3. 添加新硬件:找到“添加”或“新增”硬件的选项,然后选择“硬盘”。
  4. 配置硬盘属性
    • 硬盘类型:通常推荐选择SCSI或SATA,它们在现代Linux系统中拥有良好的性能和广泛的支持。
    • 存储位置:可以选择创建一个新的虚拟磁盘文件(.vmdk, .vdi, .qcow2等),或者使用一个已有的磁盘文件。
    • 分配容量:根据你的需求指定硬盘大小,例如50GB。
  5. 完成并启动:确认所有设置无误后,保存配置并启动虚拟机,Linux系统尚未识别到这块新的硬件。

第二步:在Linux系统中识别新硬盘

当虚拟机启动后,Linux内核会在启动过程中检测到新添加的硬件,我们需要在终端中找到它。

最直观的命令是 lsblk,它会以树状结构列出所有可用的块设备。

lsblk

在添加新硬盘前后分别执行此命令,你会很容易发现新增的设备,系统中的第一块硬盘是 sda,第二块便是 sdb,以此类推,一块全新的、未分区的硬盘会显示类似如下信息:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk
├─sda1   8:1    0    1G  0 part /boot
└─sda2   8:2    0   19G  0 part
  └─vg0-root 254:0    0   17G  0 lvm  /
sdb      8:16   0   50G  0 disk  <-- 这就是我们的新硬盘

这里,sdb 就是我们新添加的50GB虚拟硬盘,它下面没有任何分区(没有 sdb1 这样的子项),请记下这个设备名(本例中为 /dev/sdb),后续所有操作都将基于它。


第三步:对新硬盘进行分区

识别到硬盘后,需要在其上创建分区。fdisk 是一个经典且强大的交互式分区工具。

sudo fdisk /dev/sdb

进入 fdisk 的交互界面后,按照以下步骤操作(输入字母后按回车):

  1. 输入 n:创建一个新分区。
  2. 输入 p:选择主分区,对于大多数情况,主分区足够使用。
  3. 输入 1:设置分区号为1。
  4. 按回车:设置起始扇区,直接使用默认值即可,它通常是2048,以获得最佳对齐。
  5. 按回车:设置结束扇区,直接使用默认值会使用整个硬盘的所有剩余空间。
  6. 输入 p:打印当前的分区表,检查新创建的分区(/dev/sdb1)信息是否正确。
  7. 输入 w:将分区表写入磁盘并退出 fdisk

操作完成后,再次运行 lsblk,你会看到 sdb 下面多了一个 sdb1 分区。


第四步:格式化分区

分区创建后,它还仅仅是一个“容器”,需要格式化为特定的文件系统才能被Linux用来存储文件。ext4 是目前最通用、稳定的Linux文件系统。

Linux虚拟机添加新硬盘后如何分区格式化?

sudo mkfs.ext4 /dev/sdb1

此命令会将 /dev/sdb1 分区格式化为 ext4 文件系统,过程会持续几秒到几十秒,取决于硬盘大小,执行完毕后,一个可用的文件系统就准备就绪了。


第五步:挂载文件系统

我们需要将这个新文件系统“连接”到Linux的目录树中,这个过程称为挂载。

  1. 创建挂载点:选择一个空目录作为挂载点,我们为它创建一个 /data 目录。

    sudo mkdir /data
  2. 执行挂载命令

    sudo mount /dev/sdb1 /data
  3. 验证挂载结果:使用 df -h 命令可以查看已挂载的文件系统及其空间使用情况。

    df -h

    在输出中,你应该能看到一行关于 /dev/sdb1 挂载到 /data 的信息,这表明挂载成功了,现在你可以向 /data 目录中读写文件,这些数据实际上都存储在新添加的虚拟硬盘上。


第六步:实现开机自动挂载

上述挂载是临时的,重启虚拟机后会失效,要让系统每次启动时都自动挂载这个分区,需要编辑 /etc/fstab 文件。

/etc/fstab 文件定义了系统启动时要挂载的文件系统,为了安全起见,建议先获取分区的UUID(通用唯一标识符),使用UUID比设备名(如 /dev/sdb1)更可靠,因为它不会因硬件插拔顺序的改变而改变。

Linux虚拟机添加新硬盘后如何分区格式化?

sudo blkid /dev/sdb1

输出会包含类似 UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" 的信息,复制这串UUID。

使用文本编辑器(如 nanovim)打开 /etc/fstab 文件:

sudo nano /etc/fstab

在文件末尾添加一行,格式如下:

<UUID> <挂载点> <文件系统类型> <挂载选项> <dump> <pass>

UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /data ext4 defaults 0 2

下表解释了各字段的含义:

字段 含义 示例值/说明
<设备文件或UUID> 要挂载的设备 UUID=.../dev/sdb1
<挂载点> 挂载到的目录 /data
<文件系统类型> 分区的文件系统 ext4
<挂载选项> 挂载时的参数 defaults (包含rw, suid, dev, exec, auto, nouser, async)
<dump> 是否使用dump备份 0 (不备份)
<pass> 开机时磁盘检查的顺序 0 (不检查), 1 (根分区), 2 (其他分区)

保存并关闭文件后,执行 sudo mount -a 命令,该命令会重新挂载 /etc/fstab 中定义的所有文件系统,如果没有报错,说明配置无误,至此,新添加的虚拟硬盘已经完全集成到系统中,并能在每次重启后自动可用。

赞(0)
未经允许不得转载:好主机测评网 » Linux虚拟机添加新硬盘后如何分区格式化?