一、概述
用过虚拟机的都知道,如果在系统运行的时候去给虚拟机添加一块新设备,比如说硬盘,系统是读取不到这个新硬盘的,因为系统在启动的时候会去检测硬件设备。但是我们也可能会遇到这样的情况,比如正在运行比较重要的程序,这时候不想重启linux系统,又需要添加一块新硬盘,该怎么办呢?今儿个就遇到这个情况,vmware上添加新硬盘,系统不识别,于是百度了一番,有很多文章,不过大多都是要设置lvm的,鄙人比较懒,不想做那么复杂,终于找到了一篇文件讲述如何不重启的情况下添加新硬盘并识别出来,于是乎操作了一般,并记录总结下来。
二、考试环境:
1.Linux系统:CentOS6.5 32bit
2.vmware:8.04
3.硬盘类型:SCSI –>系统上电运行过程只能添加SCSI硬盘
三、虚拟机添加硬盘
虚拟机–>设置–>添加–>硬盘–>下一步–>创建一个新的虚拟硬盘–>下一步—>SCSI–>下一步–>最大磁盘空间[key]–>单个文件存储虚拟磁盘–>下一步–>磁盘文件名称填写–>完成–>确定
在虚拟机客户端扩充磁盘空间:
在为 Linux 系统增加磁盘卷之前,您首先需要添加一块新的物理磁盘,或在 VMware vShere、VMware 工作站以及你使用的其它虚拟环境软件中进行设置来增加一块虚拟磁盘的容量。
四、linux系统上操作
添加一块新的虚拟硬盘之后在linux下查看不到硬盘的设备信息:
fdisk –l –>结果并没有显示新硬盘的信息
检查磁盘空间:
运行如下命令来检查当前磁盘空间大小。
# df -h
# fdisk -l
如图可以看到,虽然我们已经在后端给其增加到 50 GB 的空间,但此时的总磁盘大小仍然为 10 GB。
按照下边操作步骤即可使linux系统重新读取并识别到新硬盘:扩展空间而无需重启虚拟机
现在运行如下命令,通过重新扫描 SCSI (注:Small Computer System Interface 小型计算机系统接口)总线并未添加 SCSI 设备,系统就可以扩展操作系统的物理磁盘空间,而且不需要重启虚拟机。
1.确定主机号:
[root@iNeedle~]# ls /sys/class/scsi_host/host0host1host2
2.重新扫描SCSI总线来添加设备:
[root@iNeedle~]# echo “- – -” > /sys/class/scsi_host/host0/scan
[root@iNeedle~]# echo “- – -” > /sys/class/scsi_host/host1/scan
[root@iNeedle~]# echo “- – -” > /sys/class/scsi_host/host2/scan
如果是虚拟化在原有盘的基础上扩大,执行上面的扫描,lsblk看到的盘的大小并不会改变。
3.使用下面的命令来检查 SCSI 设备的名称,然后重新扫描出来 SCSI 总线。
# ls /sys/class/scsi_device/
# echo 1 > /sys/class/scsi_device/0:0:0:0/device/rescan
# echo 1 > /sys/class/scsi_device/2:0:0:0/device/rescan
如果是虚拟化在原有盘的基础上扩大,执行上面的扫描,lsblk看到的盘才会改变
如下图所示,会重新扫描 SCSI 总线linux查看硬盘,随后我们在虚拟机客户端设置的磁盘大小会正常显示。
4.创建新磁盘分区:
一旦在系统中可以看到扩展的磁盘空间,就可以运行如下命令来格式化您的磁盘以创建一个新的分区。请按如下操作步骤来扩充您的物理磁盘卷。
# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2) press the 'm' key for help
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
5.键入'p'来查看当前的分区表信息,然后键入'n'键来创建一个新的主分区,选择所有可用的扇区,使用't'命令改变磁盘类型为'Linux LVM',然后选择编码 '8e' 或者默认不选,它默认的类型编码为 '83'。现在输入 'w' 来保存分区表信息并且退出命令环境,如下示:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8)
6.扩展逻辑卷:
现在我们使用如下的命令扩展逻辑卷,以增加我们系统正使用的磁盘空间。# lvextend -L +40G /dev/mapper/centos-root一旦返回增加成功的消息,就可以运行如下命令来扩展您的逻辑卷大小。
# xfs_growfs /dev/mapper/centos-root
'/' 分区的大小已经成功地增加了linux查看硬盘,可以使用 'df' 命令来检查磁盘驱动器的大小。如图示。
关注点赞不迷路[灵光一闪]