在虚拟机环境中为Linux系统添加硬盘并分区是常见的操作,主要用于扩展存储空间、隔离数据或搭建特定服务环境,整个过程涉及虚拟机配置、系统检测、分区管理、格式化及挂载等步骤,下面将详细说明操作流程。
虚拟机端添加硬盘
首先需要在虚拟机管理软件(如VMware、VirtualBox等)中为新硬盘创建虚拟设备,以VMware Workstation为例,操作步骤如下:
- 关闭或暂停Linux虚拟机(部分支持热添加,但建议关闭避免冲突)。
- 右键点击虚拟机名称,选择“设置”→“硬件”→“硬盘”→“添加”。
- 选择“硬盘类型”(推荐SCSI或SATA,兼容性较好),容量根据需求填写(如20GB),分配方式选“厚置备延迟置零”或“按需分配”(后者节省物理空间)。
- 完成添加后,虚拟机配置文件中会新增硬盘设备(如
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
,操作步骤:
- 执行
fdisk /dev/sdb
进入交互界面。 - 输入命令:
n
:新建分区。p
:选择主分区(最多4个),若需更多分区选e
扩展分区,再在扩展分区内建逻辑分区。- 分区号:默认1(主分区)。
- 起始扇区:直接回车(默认从1开始)。
- 结束扇区:输入
+10G
(创建10GB分区),或输入百分比如+50%
(使用剩余空间的一半)。
- 重复
n
创建更多分区(如第二个分区/dev/sdb2
,剩余空间全部分配)。 - 输入
p
查看分区表,确认无误后输入w
保存(若输入q
则不保存退出)。
示例输出:
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20971519 10485758+ 83 Linux
/dev/sdb2 20971520 41943039 10485760 83 Linux
(二)使用parted
进行GPT分区
GPT分区表支持更大容量和更多分区,推荐用于大硬盘,操作步骤:
- 执行
parted /dev/sdb
进入交互界面。 - 输入
mklabel gpt
初始化GPT分区表(若需MBR则输入mklabel msdos
)。 - 创建分区:
mkpart primary ext4 0% 50%
:创建主分区,文件系统ext4,从磁盘0%到50%。mkpart primary xfs 50% 100%
:创建第二个分区,文件系统xfs,剩余空间。
- 输入
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
命令手动挂载,立即生效但重启后失效:
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(避免设备名变化):
- 获取分区UUID:
blkid /dev/sdb1
输出:/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="ext4"
- 编辑
/etc/fstab
:vim /etc/fstab
,添加以下两行:UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /data ext4 defaults 0 0 UUID=b2c3d4e5-f6a7-8901-2345-67890abcdefc /backup xfs defaults 0 0
- 测试配置正确性:
mount -a
(无报错则成功)。
/etc/fstab
字段说明:
- 第1列:UUID或设备名(如
/dev/sdb1
)。 - 第2列:挂载点。
- 第3列:文件系统类型(如
ext4
、xfs
)。 - 第4列:挂载选项(
defaults
表示默认读写,ro
只读,noatime
禁用访问时间更新)。 - 第5列:dump备份选项(0不备份,1每天备份,2不定时备份)。
- 第6列:fsck检查顺序(0不检查,1根分区,2其他分区)。
验证与常见问题处理
(一)验证
- 查看挂载状态:
df -h
或mount | grep sdb
。 - 测试读写:在挂载点创建文件,如
echo "test" > /data/test.txt
,确认可读写。
(二)常见问题
- 分区后未显示:执行
partprobe
或重启虚拟机(reboot
),重新加载分区表。 - 挂载失败(“device or resource busy”):检查是否有进程占用分区(如
lsof /data
),或强制卸载umount -l /data
。 /etc/fstab
配置错误导致无法启动:进入救援模式(单用户模式),注释错误行后重启。
相关问答FAQs
Q1:如何删除已挂载的分区?
A:删除分区的步骤如下:
- 卸载分区:
umount /dev/sdb1
(若提示“busy”,可强制卸载umount -l /dev/sdb1
)。 - 删除分区:使用
fdisk /dev/sdb
,输入d
选择分区号(如1),输入w
保存。 - 更新
/etc/fstab
:删除对应分区的UUID行,避免开机报错。
Q2:如何扩展已有分区的容量?
A:扩展分区需根据是否为LVM分区处理:
- 普通分区:
- 在虚拟机中扩展硬盘容量(如VMware中“设置”→“硬盘”→“扩展容量”)。
- 在Linux中使用
parted /dev/sdb
,输入resizepart
选择分区号,输入结束扇区(如100%)。 - 若文件系统为ext4,执行
resize2fs /dev/sdb1
;若为xfs,执行xfs_growfs /data
(挂载点)。
- LVM分区:
- 扩展物理卷:
pvresize /dev/sdb1
。 - 扩展卷组:
vgextend vgname /dev/sdb1
(若新硬盘未加入VG)。 - 扩展逻辑卷:
lvextend -l +100%FREE /dev/vgname/lvname
。 - 调整文件系统:
resize2fs /dev/vgname/lvname
(ext4)或xfs_growfs /mountpoint
(xfs)。
- 扩展物理卷:
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36155.html