虚拟机Linux系统如何添加新硬盘并进行分区?

在虚拟机环境中为Linux系统添加硬盘并分区是常见的操作,主要用于扩展存储空间、隔离数据或搭建特定服务环境,整个过程涉及虚拟机配置、系统检测、分区管理、格式化及挂载等步骤,下面将详细说明操作流程。

虚拟机linux如何添加硬盘分区

虚拟机端添加硬盘

首先需要在虚拟机管理软件(如VMware、VirtualBox等)中为新硬盘创建虚拟设备,以VMware Workstation为例,操作步骤如下:

  1. 关闭或暂停Linux虚拟机(部分支持热添加,但建议关闭避免冲突)。
  2. 右键点击虚拟机名称,选择“设置”→“硬件”→“硬盘”→“添加”。
  3. 选择“硬盘类型”(推荐SCSI或SATA,兼容性较好),容量根据需求填写(如20GB),分配方式选“厚置备延迟置零”或“按需分配”(后者节省物理空间)。
  4. 完成添加后,虚拟机配置文件中会新增硬盘设备(如vmx文件中添加scsi0:1.present = "TRUE"等)。

若使用VirtualBox,路径为“设置”→“存储”→“控制器”(选择SATA或SCSI)→“添加硬盘”→“创建新硬盘”,按向导完成即可。

Linux系统检测新硬盘

启动Linux系统后,需确认系统是否识别到新硬盘,常用命令有:

  • lsblk:列出所有块设备,显示磁盘名称、大小、分区等信息,新硬盘可能显示为/dev/sdb(若已有sda、sda1等)或/dev/vdb(部分虚拟化环境)。
  • fdisk -l:查看磁盘分区表,新硬盘会显示为“Disk /dev/sdb: XX GB”且无分区信息(未分区时)。

若未识别到,可尝试:

  • 重启虚拟机(部分虚拟机需重启才加载新硬盘)。
  • 检查虚拟机BIOS/UEFI设置中是否启用了硬盘控制器(如SATA控制器开启)。

硬盘分区

检测到新硬盘后,需使用分区工具进行分区,常用工具包括fdisk(MBR分区表,最大支持2TB)、parted(支持GPT/MBR,适合大容量磁盘)、gdisk(GPT专用),以下以fdisk(MBR)和parted(GPT)为例说明。

(一)使用fdisk进行MBR分区

假设新硬盘为/dev/sdb,操作步骤:

  1. 执行fdisk /dev/sdb进入交互界面。
  2. 输入命令:
    • n:新建分区。
    • p:选择主分区(最多4个),若需更多分区选e扩展分区,再在扩展分区内建逻辑分区。
    • 分区号:默认1(主分区)。
    • 起始扇区:直接回车(默认从1开始)。
    • 结束扇区:输入+10G(创建10GB分区),或输入百分比如+50%(使用剩余空间的一半)。
  3. 重复n创建更多分区(如第二个分区/dev/sdb2,剩余空间全部分配)。
  4. 输入p查看分区表,确认无误后输入w保存(若输入q则不保存退出)。

示例输出

虚拟机linux如何添加硬盘分区

Device Boot      Start        End    Blocks   Id  System  
/dev/sdb1            2048    20971519   10485758+ 83  Linux  
/dev/sdb2        20971520    41943039   10485760   83  Linux  

(二)使用parted进行GPT分区

GPT分区表支持更大容量和更多分区,推荐用于大硬盘,操作步骤:

  1. 执行parted /dev/sdb进入交互界面。
  2. 输入mklabel gpt初始化GPT分区表(若需MBR则输入mklabel msdos)。
  3. 创建分区:
    • mkpart primary ext4 0% 50%:创建主分区,文件系统ext4,从磁盘0%到50%。
    • mkpart primary xfs 50% 100%:创建第二个分区,文件系统xfs,剩余空间。
  4. 输入print查看分区信息,确认后输入quit退出。

示例输出

Model: VMware Virtual Disk (scsi)  
Disk /dev/sdb: 21.5GB  
Sector size (logical/physical): 512B/512B  
Partition Table: gpt  
Disk Flags:  
Number  Start   End     Size    File system  Name     Flags  
 1      1049kB  10.7GB  10.7GB               primary  
 2      10.7GB  21.5GB  10.7GB               primary  

(三)分区工具对比

工具 支持分区表 最大分区大小 交互方式 适用场景
fdisk MBR 2TB 命令行 小容量磁盘、MBR兼容环境
parted GPT/MBR 无限制 命令行 大容量磁盘、GPT分区
gdisk GPT 无限制 命令行 GPT专用,安全操作

格式化分区

分区完成后,需对分区进行格式化(写入文件系统),常用命令mkfs,根据需求选择文件系统(如ext4、xfs、btrfs等):

  • 格式化/dev/sdb1为ext4:mkfs.ext4 /dev/sdb1
  • 格式化/dev/sdb2为xfs:mkfs.xfs /dev/sdb2

文件系统选择建议

  • ext4:兼容性好,适合大多数Linux发行版,支持日志功能。
  • xfs:高性能,适合大文件(如视频、数据库),扩容方便。
  • btrfs:支持快照、压缩、RAID等高级功能,适合数据存储。

格式化完成后,可通过lsblk -f查看分区文件系统:

NAME   FSTYPE LABEL UUID                                 MOUNTPOINT  
sdb                                                                  
├─sdb1 ext4         a1b2c3d4-e5f6-7890-1234-567890abcdef  
└─sdb2 xfs          b2c3d4e5-f6a7-8901-2345-67890abcdefc  

创建挂载点并配置自动挂载

(一)创建挂载点

挂载点是目录,用于访问分区数据,创建两个目录分别挂载/dev/sdb1/dev/sdb2

mkdir -p /data /backup  # -p确保父目录存在

(二)临时挂载

使用mount命令手动挂载,立即生效但重启后失效:

虚拟机linux如何添加硬盘分区

mount /dev/sdb1 /data    # 挂载sdb1到/data
mount /dev/sdb2 /backup  # 挂载sdb2到/backup

挂载后可通过df -h查看:

Filesystem      Size  Used Avail Use% Mounted on  
/dev/sdb1        10G   24K   9.5G   1% /data  
/dev/sdb2        10G   33M   9.9G   1% /backup  

(三)配置自动挂载(/etc/fstab

为使开机自动挂载,需编辑/etc/fstab文件,添加分区信息,推荐使用UUID(避免设备名变化):

  1. 获取分区UUID:blkid /dev/sdb1
    输出:/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="ext4"
  2. 编辑/etc/fstabvim /etc/fstab,添加以下两行:
    UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /data ext4 defaults 0 0  
    UUID=b2c3d4e5-f6a7-8901-2345-67890abcdefc /backup xfs defaults 0 0  
  3. 测试配置正确性:mount -a(无报错则成功)。

/etc/fstab字段说明

  • 第1列:UUID或设备名(如/dev/sdb1)。
  • 第2列:挂载点。
  • 第3列:文件系统类型(如ext4xfs)。
  • 第4列:挂载选项(defaults表示默认读写,ro只读,noatime禁用访问时间更新)。
  • 第5列:dump备份选项(0不备份,1每天备份,2不定时备份)。
  • 第6列:fsck检查顺序(0不检查,1根分区,2其他分区)。

验证与常见问题处理

(一)验证

  • 查看挂载状态:df -hmount | grep sdb
  • 测试读写:在挂载点创建文件,如echo "test" > /data/test.txt,确认可读写。

(二)常见问题

  1. 分区后未显示:执行partprobe或重启虚拟机(reboot),重新加载分区表。
  2. 挂载失败(“device or resource busy”):检查是否有进程占用分区(如lsof /data),或强制卸载umount -l /data
  3. /etc/fstab配置错误导致无法启动:进入救援模式(单用户模式),注释错误行后重启。

相关问答FAQs

Q1:如何删除已挂载的分区?
A:删除分区的步骤如下:

  1. 卸载分区:umount /dev/sdb1(若提示“busy”,可强制卸载umount -l /dev/sdb1)。
  2. 删除分区:使用fdisk /dev/sdb,输入d选择分区号(如1),输入w保存。
  3. 更新/etc/fstab:删除对应分区的UUID行,避免开机报错。

Q2:如何扩展已有分区的容量?
A:扩展分区需根据是否为LVM分区处理:

  • 普通分区
    1. 在虚拟机中扩展硬盘容量(如VMware中“设置”→“硬盘”→“扩展容量”)。
    2. 在Linux中使用parted /dev/sdb,输入resizepart选择分区号,输入结束扇区(如100%)。
    3. 若文件系统为ext4,执行resize2fs /dev/sdb1;若为xfs,执行xfs_growfs /data(挂载点)。
  • LVM分区
    1. 扩展物理卷:pvresize /dev/sdb1
    2. 扩展卷组:vgextend vgname /dev/sdb1(若新硬盘未加入VG)。
    3. 扩展逻辑卷:lvextend -l +100%FREE /dev/vgname/lvname
    4. 调整文件系统:resize2fs /dev/vgname/lvname(ext4)或xfs_growfs /mountpoint(xfs)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36155.html

(0)
酷番叔酷番叔
上一篇 2025年10月5日 04:26
下一篇 2025年10月5日 04:40

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信