Linux不丢失数据无损扩容分区操作命令实例
作者:Arthur古德曼
这篇文章主要介绍了Linux不丢失数据无损扩容分区操作命令实例,在实际操作前,请确保备份重要数据,并确认分区和文件系统的类型,因为不同的文件系统扩展方法会不同,如果是在线扩容,请确保没有挂载使用该分区或者文件系统
目的:
不丢失数据的情况下扩容分区大小。
作用:
在没有lvm的情况下fdisk无损扩容分许大小。
在使用lvm的情况下不想新增pv而是直接扩容pv的大小。
重要提醒:尽管这个方法是无损的,但再三强调务必在执行前进行必要的数据备份,以防止误操作或者其他意外情况下的数据丢失的可能。
方法:
扩容前的信息搜集
特别要注意
扩容对象的起点 # 过程中删除扩容分区后创建新分区的时候所使用的扇区起点必须和之前的分区一致
您想移除该签名吗?是[Y]/否[N]:n #这里务必选N
重要提醒:尽管这个方法是无损的,但再三强调务必在执行前进行必要的数据备份,以防止误操作或者其他意外情况下的数据丢失的可能。
[root@tempvm ~]# [root@tempvm ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 29G 0 part ├─cs-root 253:0 0 26G 0 lvm / └─cs-swap 253:1 0 3G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom sr1 11:1 1 1024M 0 rom [root@tempvm ~]# [root@tempvm ~]# fdisk -l /dev/sda Disk /dev/sda:50 GiB,53687091200 字节,104857600 个扇区 磁盘型号:VMware Virtual S 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x5b605fe0 设备 启动 起点 末尾 扇区 大小 Id 类型 /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 62914559 60815360 29G 8e Linux LVM [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]#
执行分区扩容
[root@tempvm ~]# fdisk /dev/sda 欢迎使用 fdisk (util-linux 2.37.4)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 This disk is currently in use - repartitioning is probably a bad idea. It's recommended to umount all file systems, and swapoff all swap partitions on this disk. 命令(输入 m 获取帮助):m 帮助: DOS (MBR) a 开关 可启动 标志 b 编辑嵌套的 BSD 磁盘标签 c 开关 dos 兼容性标志 常规 d 删除分区 F 列出未分区的空闲区 l 列出已知分区类型 n 添加新分区 p 打印分区表 t 更改分区类型 v 检查分区表 i 打印某个分区的相关信息 杂项 m 打印此菜单 u 更改 显示/记录 单位 x 更多功能(仅限专业人员) 脚本 I 从 sfdisk 脚本文件加载磁盘布局 O 将磁盘布局转储为 sfdisk 脚本文件 保存并退出 w 将分区表写入磁盘并退出 q 退出而不保存更改 新建空磁盘标签 g 新建一份 GPT 分区表 G 新建一份空 GPT (IRIX) 分区表 o 新建一份的空 DOS 分区表 s 新建一份空 Sun 分区表 命令(输入 m 获取帮助):p Disk /dev/sda:50 GiB,53687091200 字节,104857600 个扇区 磁盘型号:VMware Virtual S 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x5b605fe0 设备 启动 起点 末尾 扇区 大小 Id 类型 /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 62914559 60815360 29G 8e Linux LVM 命令(输入 m 获取帮助):d 分区号 (1,2, 默认 2): 2 分区 2 已删除。 命令(输入 m 获取帮助):n 分区类型 p 主分区 (1 primary, 0 extended, 3 free) e 扩展分区 (逻辑分区容器) 选择 (默认 p):p 分区号 (2-4, 默认 2): 2 第一个扇区 (2099200-104857599, 默认 2099200): # 这里是重要,起点扇区必须与之前记录的起点一致。 最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2099200-104857599, 默认 104857599): 创建了一个新分区 2,类型为“Linux”,大小为 49 GiB。 分区 #2 包含一个 LVM2_member 签名。 您想移除该签名吗?是[Y]/否[N]:n 命令(输入 m 获取帮助):t 分区号 (1,2, 默认 2): 2 Hex 代码或别名(输入 L 列出所有代码):8e 已将分区“Linux”的类型更改为“Linux LVM”。 命令(输入 m 获取帮助):w 分区表已调整。 正在同步磁盘。 [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]#
检查分区扩容结果
[root@tempvm ~]# partprobe /dev/sda # 即使系统可以自动识别,也强烈建议执行这一步 [root@tempvm ~]# [root@tempvm ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─cs-root 253:0 0 26G 0 lvm / └─cs-swap 253:1 0 3G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom sr1 11:1 1 1024M 0 rom [root@tempvm ~]# [root@tempvm ~]# fdisk -l Disk /dev/sda:50 GiB,53687091200 字节,104857600 个扇区 磁盘型号:VMware Virtual S 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x5b605fe0 设备 启动 起点 末尾 扇区 大小 Id 类型 /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 104857599 102758400 49G 8e Linux LVM Disk /dev/mapper/cs-root:26 GiB,27913093120 字节,54517760 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 Disk /dev/mapper/cs-swap:3 GiB,3221225472 字节,6291456 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]#
如果你的文件系统没有运行在LVM之上,那么到此就可以结束了,下面的步骤针对文件系统建立在LVM之上的情况下(当然,这种是大多数情况)。
对LVS进行扩容
[root@tempvm ~]# [root@tempvm ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cs lvm2 a-- <29.00g 0 [root@tempvm ~]# [root@tempvm ~]# vgs VG #PV #LV #SN Attr VSize VFree cs 1 2 0 wz--n- <29.00g 0 [root@tempvm ~]# [root@tempvm ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cs -wi-ao---- <26.00g swap cs -wi-ao---- 3.00g [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]# pvresize /dev/sda2 Physical volume "/dev/sda2" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cs lvm2 a-- <49.00g 20.00g [root@tempvm ~]# [root@tempvm ~]# vgs VG #PV #LV #SN Attr VSize VFree cs 1 2 0 wz--n- <49.00g 20.00g [root@tempvm ~]# [root@tempvm ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cs -wi-ao---- <26.00g swap cs -wi-ao---- 3.00g [root@tempvm ~]# [root@tempvm ~]# lvextend -l +100%FREE /dev/cs/root Size of logical volume cs/root changed from <26.00 GiB (6655 extents) to <46.00 GiB (11775 extents). Logical volume cs/root successfully resized. [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cs -wi-ao---- <46.00g swap cs -wi-ao---- 3.00g [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 3.8G 0 3.8G 0% /dev/shm tmpfs 1.5G 18M 1.5G 2% /run /dev/mapper/cs-root 26G 5.0G 21G 20% / /dev/sda1 960M 307M 654M 32% /boot tmpfs 766M 100K 766M 1% /run/user/1000 tmpfs 766M 36K 766M 1% /run/user/0 [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev tmpfs tmpfs 3.8G 0 3.8G 0% /dev/shm tmpfs tmpfs 1.5G 18M 1.5G 2% /run /dev/mapper/cs-root xfs 26G 5.0G 21G 20% / /dev/sda1 xfs 960M 307M 654M 32% /boot tmpfs tmpfs 766M 100K 766M 1% /run/user/1000 tmpfs tmpfs 766M 36K 766M 1% /run/user/0 [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]#
将容量grow到文件系统
[root@tempvm ~]# xfs_growfs / meta-data=/dev/mapper/cs-root isize=512 agcount=4, agsize=1703680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=1 inobtcount=1 nrext64=0 data = bsize=4096 blocks=6814720, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 6814720 to 12057600 [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]# [root@tempvm ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─cs-root 253:0 0 46G 0 lvm / └─cs-swap 253:1 0 3G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom sr1 11:1 1 1024M 0 rom [root@tempvm ~]# [root@tempvm ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev tmpfs tmpfs 3.8G 0 3.8G 0% /dev/shm tmpfs tmpfs 1.5G 18M 1.5G 2% /run /dev/mapper/cs-root xfs 46G 5.1G 41G 12% / /dev/sda1 xfs 960M 307M 654M 32% /boot tmpfs tmpfs 766M 100K 766M 1% /run/user/1000 tmpfs tmpfs 766M 36K 766M 1% /run/user/0 [root@tempvm ~]# [root@tempvm ~]#
这里要注意使用的命令是根据文件系统的格式不同而不同的。
xfs格式使用xfs_growfs
etxt使用resize2fs
到此这篇关于Linux不丢失数据无损扩容分区操作命令实例的文章就介绍到这了,更多相关Linux扩容分区内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!