如何在 CentOS 7 中添加新磁盘而不用重启系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 CentOS 7 中添加新磁盘而不用重启系统相关的知识,希望对你有一定的参考价值。
参考技术A 对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一。因此这篇文章会通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重启您的生产服务器。关于扩充和增加新的磁盘到 Linux 系统,我们会提及多种方法和多种可行性,可按您所需选择最适用的一种。1. 在虚拟机客户端扩充磁盘空间:在为 Linux 系统增加磁盘卷之前,您首先需要添加一块新的物理磁盘,或在 VMware vShere、VMware 工作站以及你使用的其它虚拟环境软件中进行设置来增加一块虚拟磁盘的容量。2. 检查磁盘空间:运行如下命令来检查当前磁盘空间大小。# df -h# fdisk -l可以看到,虽然我们已经在后端给其增加到 50 GB 的空间,但此时的总磁盘大小仍然为 10 GB。3. 扩展空间而无需重启虚拟机现在运行如下命令,通过重新扫描 SCSI (注:Small Computer System Interface 小型计算机系统接口)总线并添加 SCSI 设备,系统就可以扩展操作系统的物理卷磁盘空间,而且不需要重启虚拟机。# ls /sys/class/scsi_host/# echo "- - -" > /sys/class/scsi_host/host0/scan ...对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一。因此这篇文章会通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重启您的生产服务器。关于扩充和增加新的磁盘到 Linux 系统,我们会提及多种方法和多种可行性,可按您所需选择最适用的一种。1. 在虚拟机客户端扩充磁盘空间:在为 Linux 系统增加磁盘卷之前,您首先需要添加一块新的物理磁盘,或在 VMware vShere、VMware 工作站以及你使用的其它虚拟环境软件中进行设置来增加一块虚拟磁盘的容量。2. 检查磁盘空间:运行如下命令来检查当前磁盘空间大小。# df -h# fdisk -l可以看到,虽然我们已经在后端给其增加到 50 GB 的空间,但此时的总磁盘大小仍然为 10 GB。3. 扩展空间而无需重启虚拟机现在运行如下命令,通过重新扫描 SCSI (注:Small Computer System Interface 小型计算机系统接口)总线并添加 SCSI 设备,系统就可以扩展操作系统的物理卷磁盘空间,而且不需要重启虚拟机。# ls /sys/class/scsi_host/# echo "- - -" > /sys/class/scsi_host/host0/scan# echo "- - -" > /sys/class/scsi_host/host1/scan# echo "- - -" > /sys/class/scsi_host/host2/scan使用下面的命令来检查 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如下图所示,会重新扫描 SCSI 总线,随后我们在虚拟机客户端设置的磁盘大小会正常显示。4. 创建新磁盘分区:一旦在系统中可以看到扩展的磁盘空间,就可以运行如下命令来格式化您的磁盘以创建一个新的分区。请按如下操作步骤来扩充您的物理磁盘卷。# fdisk /dev/sdaWelcome to fdisk (util-linux 2.23.2) press the 'm' key for helpCommand (m for help): mCommand actiona toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partitiong create a new empty GPT partition tableG create an IRIX (SGI) partition tablel list known partition typesm print this menun add a new partitiono create a new empty DOS partition tablep print the partition tableq quit without saving changess create a new empty Sun disklabelt change a partition's system idu change display/entry unitsv verify the partition tablew write table to disk and exitx extra functionality (experts only)Command (m for help):键入 'p' 来查看当前的分区表信息,然后键入 'n' 键来创建一个新的主分区,选择所有可用的扇区。 使用 't' 命令改变磁盘类型为 'Linux LVM',然后选择编码 '8e' 或者默认不选,它默认的类型编码为 '83'。现在输入 'w' 来保存分区表信息并且退出命令环境,如下示:Command (m for help): wThe 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 atthe next reboot or after you run partprobe(8) or kpartx(8)5. 创建物理卷:根据上述提示,运行 'partprob' 或 'kpartx' 命令以使分区表生效,然后使用如下的命令来创建新的物理卷。# partprobe# pvresize /dev/sda3要检查新创建的卷,运行如下的命令可以看出新的物理卷是否已经被创建,是否可用。接下来,我们就可以使用这个新的物理卷来扩展 'centos' 卷组了,如下示:# pvdisplay# vgextend centos /dev/sda36. 扩展逻辑卷:现在我们使用如下的命令扩展逻辑卷,以增加我们系统正使用的磁盘空间。# lvextend -L +40G /dev/mapper/centos-root一旦返回增加成功的消息,就可以运行如下命令来扩展您的逻辑卷大小。# xfs_growfs /dev/mapper/centos-root'/' 分区的大小已经成功的增加了,可以使用 'df' 命令来检查您磁盘驱动器的大小。如图示。7. 通过增加新的磁盘来扩充根分区而不用重启系统:这是第二种方法,它使用的命令非常简单, 用来增加 CentOS 7 系统上逻辑卷空间大小。所以第一步是打开您的虚拟机客户端的设置页面,点击 ‘增加’ 按纽,然后继续下一步操作。选择新磁盘所需要的配置信息,如下图所示的,选择新磁盘的大小和它的类型。然后进入服务端重复如下的命令来扫描您的磁盘设备,以使新磁盘在系统中可见。# echo "- - -" > /sys/class/scsi_host/host0/scan# echo "- - -" > /sys/class/scsi_host/host1/scan# echo "- - -" > /sys/class/scsi_host/host2/scan列出您的 SCSI 设备的名称:# ls /sys/class/scsi_device/# echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan# echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan# fdisk -l一旦新增的磁盘可见,就可以运行下面的命令来创建新的物理卷,然后增加到卷组,如下示。# pvcreate /dev/sdb# vgextend centos /dev/sdb# vgdisplay现在根据此磁盘的空间大小来扩展逻辑卷,然后添加到根分区。# lvextend -L +20G /dev/mapper/centos-root# xfs_growfs /dev/mapper/centos-root# df -h结论:在 Linux CentOS 7 系统上管理磁盘分区的操作过程是非常简单的,可以使用这篇文章所述的操作步骤来扩充您的任意逻辑卷的磁盘空间。您不需要重启生产线上的服务器,只是简单的重扫描下 SCSI 设备,和扩展您想要的 LVM(逻辑卷管理)。我们希望这文章对您有用。请随意的发表有用的和建议。收起如何在 CentOS 7 中添加新磁盘而不用重启系统
1. 在虚拟机客户端扩充磁盘空间:在为 Linux 系统增加磁盘卷之前,您首先需要添加一块新的物理磁盘,或在 VMware vShere、VMware 工作站以及你使用的其它虚拟环境软件中进行设置来增加一块虚拟磁盘的容量。
2. 检查磁盘空间:
运行如下命令来检查当前磁盘空间大小。
# df -h
# fdisk -l
3. 扩展空间而无需重启虚拟机
现在运行如下命令,通过重新扫描 SCSI (注:Small Computer System Interface 小型计算机系统接口)总线并添加 SCSI 设备,系统就可以扩展操作系统的物理卷磁盘空间,而且不需要重启虚拟机。
# ls /sys/class/scsi_host/
# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan
使用下面的命令来检查 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
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):
键入'p'来查看当前的分区表信息,然后键入'n'键来创建一个新的主分区,选择所有可用的扇区,使用't'命令改变磁盘类型为'LinuxLVM',然后选择编码 '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)
5. 创建物理卷:
根据上述提示,运行'partprob'或'kpartx'命令以使分区表生效,然后使用如下的命令来创建新的物理卷。
# partprobe
# pvcreate /dev/sda3
要检查新创建的卷,运行如下的命令可以看出新的物理卷是否已经被创建,是否可用。接下来,我们就可以使用这个新的物理卷来扩展 'centos' 卷组了,如下示:
# pvdisplay
# vgextend centos /dev/sda3
6. 扩展逻辑卷:
使用如下的命令扩展逻辑卷,以增加我们系统正使用的磁盘空间。
# lvextend -L +40G /dev/mapper/centos-root
一旦返回增加成功的消息,就可以运行如下命令来扩展您的逻辑卷大小。
# xfs_growfs /dev/mapper/centos-root
'/' 分区的大小已经成功的增加了,可以使用 'df' 命令来检查您磁盘驱动器的大小。如图示。
7. 通过增加新的磁盘来扩充根分区而不用重启系统:
这是第二种方法,它使用的命令非常简单, 用来增加 CentOS 7 系统上逻辑卷空间大小。所以第一步是打开您的虚拟机客户端的设置页面,点击 ‘增加’ 按纽,然后继续下一步操作。
选择新磁盘所需要的配置信息,如下图所示的,选择新磁盘的大小和它的类型。
然后进入服务端重复如下的命令来扫描您的磁盘设备,以使新磁盘在系统中可见。
# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan
列出您的 SCSI 设备的名称:
# ls /sys/class/scsi_device/
# echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan
# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan
# echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan
# fdisk -l
一旦新增的磁盘可见,就可以运行下面的命令来创建新的物理卷,然后增加到卷组,如下示。
# pvcreate /dev/sdb
# vgextend centos /dev/sdb
# vgdisplay
现在根据此磁盘的空间大小来扩展逻辑卷,然后添加到根分区。
# lvextend -L +20G /dev/mapper/centos-root
# xfs_growfs /dev/mapper/centos-root
# df -h 参考技术A 一.安装所需软件1.分区助手专业版(必需):用来对硬盘分区,将磁盘的一部分格式化成Linux可以识别的ext3格式2.Ext2Fsd(硬盘安装必需,光盘安装不用):因为Windows不能识别ext3格式的文件系统,所以需要借助这个软件将linux安装文件放到ext3的磁盘,如果是使用光盘安装,则不需要这个软件3.EasyBCD(必需):用于添加和修改启动项4.WinGrub(建议使用):用于看分区编号5.动态磁盘转换器(视情况):Linux只能安装在基本磁盘,我是因为第一次安装错误导致磁盘变成了动态磁盘,所以需要用到这个,关于动态磁盘的概念请自行百度,一般现在的系统都是基本磁盘。6.CentOS-6.5-x86_64-bin-DVD1.iso和CentOS-6.5-x86_64-bin-DVD2.iso。如果是安装32位的CentOS系统,就是CentOS-6.5-i386-bin-DVD1.iso和CentOS-6.5-i386-bin-DVD2.iso两个文件。CentOS的安装文件需要自行另外下载(各大高校的ftp上应该有)或者购买安装光碟。下面主要介绍硬盘安装双系统的方法,光盘安装的步骤会少些,也一并介绍了:二.在Windows7上面的准备工作1.打开磁盘管理器:Win徽标键+R键调出运行框,输入指令diskmgmt.msc回车调出磁盘管理器。在最后一个分区上面右键选择压缩卷,如果磁盘空间不够的话一定注意要备份该分区上的数据哦!!!也可以选择删除卷,但这样做的话一定要将数据备份!!!压缩多少视自己硬盘情况和想要Linux系统占用多大空间而定,硬盘大的话建议100G以上。这步完成后磁盘上会出现一部分未分配空间,如下图:2.安装分区助手专业版,在磁盘未分配空间上右键->创建分区,创建一个10GB的分区用于存放CentOS6.5的安装文件(光盘安装可以跳过这步),这里的文件系统说明一下,如果是安装32位的CentOS的话,因为安装文件小于4GB,可以选择使用FAT32文件系统。如果是安装64位的CentOS,则只能使用EXT3的文件系统。在高级选项中记得选择创建为“逻辑分区”。确定后在主界面选择提交执行。3.在剩下的未分配空间上创建一个Ext3格式的主分区,方法同上。但是注意必须在高级选项中选择创建为“主分区”,如果“创建为”后面是不可以选择为“主分区”的,则说明主分区的数量已经到达上限,可以用下面方法将其中一个原本为“主分区”磁盘转换为“逻辑分区”。我完成第2、第3步后磁盘情况如下:4.安装Ext2Fsd软件,安装过程中记得勾选以下选项!!!否则会出错(光盘安装可以跳过这步,如果安装32位的CentOS,10GB空间的格式为FAT32也可以跳过这步)。安装完成后在分配的10GB磁盘空间上右键->ServiceManagement,在弹出的页面选点Start,再点Apply。如下图,注意勾选项:然后在“我的电脑”中就可以看到ext3格式的10GB的空间了。5.(光盘安装可以跳过这步)将CentOS-6.5-x86_64-bin-DVD1.iso用WinRAR或UltraISO解压,将解压后的images和isolinux两个文件复制到10GB的分区中,并将CentOS-6.5-x86_64-bin-DVD1.iso和CentOS-6.5-x86_64-bin-DVD2.iso也复制到10GB的存放分区中。(安装32位的CentOS将对应文件放到该分区中)6.(光盘安装可以跳过)安装WinGrub,在Tool->PartitionList打开的页面中找到存放10GB的分区的编号:如:我这里是(hd0,5),记下来这个编号,后面有用。7.(光盘安装可以跳过)安装EasyBCD,打开后找到AddNewEntry,点NeoGrub标签。点Install然后点Configure。在弹出的文档中加入下面内容,这里的(hd0,5)是上一步中找到的分区编号:titleInstallCentOSkernel(hd0,5)/isolinux/vmlinuzinitrd(hd0,5)/isolinux/initrd.img保存后重启。三.开始安装1.如果是硬盘安装,重启后选择NeoGrub引导进入。如果是光盘安装,重启后在启动选项中选择优先从光盘启动并放入光盘从光盘启动。2.一步步安装:语言选择,上面的表示简体中文,默认选中英语这里是说你把安装文件DVD放到哪儿了?(光盘安装选LocalCD/DVD,硬盘安装选HardDrive)硬盘安装的话这里就一个个试吧。下面的图片表示开始安装了选BasicStorageDevice区域选择自己选,Asia/Shanghai或者Asia/Chongqing。到后面选择磁盘空间时选择最下面的选项表示你要自定义:开始自定义了:这里一定要选对正确的分区,用于安装CentOS系统,这个分区是之前用分区专业助手分出来的那个主分区。格式应该是ext3,这个分区一定不要选错,配置该分区后该分区上的数据会被擦除,可以自己根据各个分区的大小和格式来判断应该将CentOS安装在哪一个分区。选中该分区后点下面的Create:(如果Create不能直接点,可以先点Delete)然后是格式就用ext4好了,大小嘛尽量用掉分出来的所有空间:(如果是用u盘装的同学这里不要把u盘选进去)好了,继续:这里就会提示要写磁盘了:这里一定要更改设置,否则他会默认把启动文件放到Windows所在分区,这样会损坏Win7的启动文件,造成Win7无法启动!!!建议选Desktop,这个安装最完整:好了,完成:3.启动进入Win7之后打开EasyBCD,在AddNewEntry的NeoGrub标签下点Remove。然后如图添加一个CentOS6.5的启动项,安装了CentOS系统的磁盘分区一定要选对:AddEntry重启后就可以进入CentOS6.5了。4.原来放CentOS系统安装文件的那10GB的分区可以删除了还给Win7使用,这步之后磁盘号可能会发生变化,导致不能进入CentOS,这种情况下需要重复一下上面的第3步。四.安装完之后的配置安装之后还会有个小问题就是Win7和CentOS的时间总是相差8个小时。如下方法解决:首先在System->Administration->Date&Time,取消Synchronizedateandtimeoverthenetwork然后Ctrl+Alt+F2快速切换窗口登录root账户(root账户的账户名是root,密码是安装CentOS时设置的那个localhost的密码)运行指令ntpdatecn.pool.ntp.org运行指令hwclock-wCtrl+Alt+F1切换回桌面界面。然后再回到Win7下面设置时间的时候就不会出问题啦~
以上是关于如何在 CentOS 7 中添加新磁盘而不用重启系统的主要内容,如果未能解决你的问题,请参考以下文章