在虚拟机中为Linux系统添加硬盘是扩展存储容量的常见操作,无论是用于安装新应用、存储数据还是搭建服务环境,掌握这一技能都非常实用,本文将以VMware Workstation和VirtualBox两款主流虚拟机软件为例,结合Linux系统操作,详细讲解从虚拟机配置到系统识别、分区、格式化及挂载的全过程,帮助用户顺利完成硬盘添加任务。
虚拟机层面添加硬盘
在Linux系统识别新硬盘前,需先在虚拟机管理软件中添加虚拟硬盘设备,不同虚拟机软件操作略有差异,但核心步骤一致:创建虚拟硬盘文件并关联至虚拟机。
VMware Workstation添加硬盘
(1)关机或暂停虚拟机:为确保操作安全,建议先关闭Linux虚拟机(若支持热添加,也可在开机状态下操作,但部分场景可能受限)。
(2)进入虚拟机设置:在VMware主界面选中目标虚拟机,点击“虚拟机”→“设置”,或右键虚拟机选择“设置”。
(3)添加硬盘设备:在“硬件”选项卡中,点击“添加”,选择“硬盘”,点击“下一步”。
(4)配置硬盘类型:选择“SCSI”(推荐,性能较好,支持热插拔)或“SATA”(兼容性更好,无需额外驱动),点击“下一步”。
(5)创建新硬盘:选择“创建新虚拟磁盘”,点击“下一步”。
(6)设置硬盘参数:
- 磁盘大小:根据需求输入容量(如50GB),单位支持GB/MB/TB;
- 磁盘格式:选择“厚置备延迟置零”(性能较好,初始占用全部空间)或“精简置备”(按需分配,节省空间);
- 存储方式:默认“虚拟机文件夹中的单个文件”,也可拆分为多个文件(适用于超大硬盘)。
完成后点击“下一步”,确认信息无误点击“完成”,返回虚拟机设置界面,点击“确定”保存配置。
VirtualBox添加硬盘
(1)关闭虚拟机:同VMware,建议先关机操作。
(2)进入存储设置:打开VirtualBox管理器,选中虚拟机,点击“设置”→“存储”。
(3)添加存储控制器:在“存储树”中,点击“没有磁盘控制器”下的“添加硬盘控制器”,选择“SATA控制器”(推荐)或“SCSI控制器”。
(4)创建虚拟硬盘:点击控制器右侧的“光盘图标”,选择“创建新的磁盘文件”。
(5)配置硬盘参数:
- 硬盘大小:输入目标容量(如100GB);
- 硬盘文件类型:默认“VDI(VirtualBox磁盘映像)”,也可选VMDK(VMware兼容)或VHD(Hyper-V兼容);
- 存储在物理硬盘上:选择“动态分配”(按需扩展,节省空间)或“固定大小”(预分配全部空间,性能较好)。
完成后点击“创建”,返回存储设置界面,确认新硬盘已关联至SATA控制器(显示为“空”),点击“确定”保存。
Linux系统识别新硬盘
虚拟机添加硬盘后,Linux系统需通过扫描硬件设备识别新硬盘,不同接口类型的硬盘识别方式略有不同:
识别SATA/SCSI硬盘(常见)
(1)重启虚拟机:若添加硬盘时虚拟机已关机,重启后Linux通常会自动识别新硬盘;若开机添加,可尝试手动触发扫描。
(2)查看硬盘信息:登录Linux系统后,使用以下命令查看当前磁盘设备:
lsblk # 列出所有块设备,显示磁盘名称、大小、挂载点等信息 fdisk -l # 查看磁盘分区表,新硬盘通常显示为“/dev/sdb”“/dev/sdc”等(/dev/sda为系统盘)
若输出中出现未分区的磁盘(如“/dev/sdb 50G 0 50G disk”),则表示系统已识别新硬盘。
手动扫描SCSI硬盘(若未自动识别)
若使用SCSI接口且系统未自动识别,需加载相关模块并扫描总线:
echo "- - -" > /sys/class/scsi_host/host0/scan # 扫描SCSI主机0(根据实际情况调整hostX) lsblk # 再次查看是否识别到新硬盘
对新硬盘进行分区
识别到新硬盘后,需对其进行分区才能使用,Linux常用分区工具为fdisk
(MBR分区表)或parted
(GPT分区表),本文以fdisk
为例:
进入分区工具
假设新硬盘为/dev/sdb
,执行:
fdisk /dev/sdb
创建分区
进入fdisk
交互界面后,执行以下操作:
n
:新建分区- 选择分区类型:
p
(主分区,最多4个)或e
(扩展分区,可创建多个逻辑分区); - 分区编号:默认回车(从1开始);
- 起始扇区:默认回车(从磁盘起始位置开始);
- 结束扇区:输入
+10G
(创建10GB分区)或直接回车(使用全部剩余空间)。
- 选择分区类型:
p
:查看分区表,确认分区信息(如“/dev/sdb1”)。w
:保存分区表并退出(若输入q
则不保存退出)。
刷新分区信息
保存后,Linux需重新读取分区表:
partprobe /dev/sdb # 刷新指定硬盘分区表 lsblk # 确认分区已创建(如“/dev/sdb1 10G 0 10G part”)
格式化分区
分区后需格式化文件系统才能存储数据,常用文件系统为ext4
(Linux主流),也可选xfs
(大文件性能优)、swap
(交换分区)等,本文以格式化ext4
为例:
格式化分区
假设分区为/dev/sdb1
,执行:
mkfs.ext4 /dev/sdb1 # 格式化为ext4文件系统
若需格式化为xfs:
mkfs.xfs /dev/sdb1
查看格式化结果
blkid /dev/sdb1 # 显示分区UUID、文件系统类型等信息
输出示例:/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="ext4"
挂载分区并设置开机自动挂载
格式化后的分区需挂载至指定目录才能使用,同时需配置开机自动挂载,避免重启后失效。
创建挂载目录
mkdir /data # 自定义挂载目录,如/data、/storage等
临时挂载
mount /dev/sdb1 /data # 挂载分区至/data目录 df -hT # 查看挂载结果,确认/dev/sdb1已挂载
永久挂载(开机自动生效)
编辑/etc/fstab
文件,添加挂载信息(推荐使用UUID而非设备名,避免设备名变更导致挂载失败):
vim /etc/fstab
在文件末尾添加以下内容(以UUID和ext4为例):
UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /data ext4 defaults 0 2
字段说明:
UUID
:分区的唯一标识(通过blkid
获取);/data
:挂载目录;ext4
:文件系统类型;defaults
:挂载选项(包括rw读写、exec执行、auto自动挂载等);0
:是否dump备份(0表示不备份);2
:fsck磁盘检查顺序(0表示不检查,1为根分区,2为其他分区)。
保存后执行mount -a
测试配置是否正确(无报错则成功):
mount -a
注意事项
- 数据备份:操作前务必备份虚拟机快照或重要数据,避免分区、格式化等操作失误导致数据丢失。
- 分区表选择:若硬盘容量超过2TB,建议使用GPT分区表(通过
parted
工具创建),MBR分区表最大支持2TB。 - 热插拔支持:SCSI和SATA(部分系统)硬盘支持热插拔,添加后可通过
echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi
(SCSI)或重启识别,无需关机。 - 权限问题:挂载目录默认权限为755,若需其他用户写入,可修改权限(如
chmod 777 /data
)或调整/etc/fstab
中的umask
值。
相关问答FAQs
Q1:添加硬盘后Linux系统无法识别新硬盘,如何解决?
A:可能原因及解决方法:
- 虚拟机未重启:若添加硬盘时虚拟机开机,尝试重启虚拟机或手动扫描硬件(如SCSI硬盘执行
echo "- - -" > /sys/class/scsi_host/host0/scan
); - 硬盘接口驱动缺失:确认Linux系统已加载对应接口驱动(如SATA驱动通常已内置,SCSI可能需安装
scsi_mod
等模块); - 虚拟机配置错误:检查虚拟机设置中硬盘是否正确关联至控制器(如SATA硬盘需挂载到SATA控制器而非IDE);
- 硬盘文件损坏:重新创建虚拟硬盘文件,确保格式正确(如VDI/VMDK)。
Q2:如何扩容已挂载的分区(如根分区)?
A:扩容分区需分场景处理:
- LVM逻辑卷扩容(推荐):
- 扩展LV:
lvextend -L +10G /dev/mapper/vg_root-lv_root
(增加10GB); - 调整文件系统:
resize2fs /dev/mapper/vg_root-lv_root
(ext4)或xfs_growfs /
(xfs)。
- 扩展LV:
- 普通分区扩容(需卸载分区):
- 卸载分区:
umount /dev/sda1
; - 调整分区大小:
fdisk /dev/sda
(删除分区后重新创建,保留数据需谨慎); - 刷新文件系统:
resize2fs /dev/sda1
。
注意:普通分区扩容风险较高,建议提前备份数据,优先使用LVM管理磁盘。
- 卸载分区:
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36183.html