对基于再生龙制作的Linux系统的硬盘进行扩容
背景
公司一个仪器产品是基于x86核心板开发的,因此制作系统镜像时用的再生龙软件,好处是制作的系统镜像比ARM平台那种raw image小很多,缺点是操作有点麻烦。
最近客户反馈512GB的SSD硬盘容量不够,因此公司决定升级成1TB的,但是工程部的同事用再生龙镜像做完系统后,发现硬盘容量还是512GB,我给他们解释,镜像是在512GB硬盘上做的,因此还原出来的分区表自然还是512GB的,要手动扩容。
思路
查看SSD分区情况,可以看到,1号分区就是根分区,2号分区其实是扩展分区,用于包裹5号分区(交换分区)和其他潜在的扩展分区。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 477G 0 disk
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 975M 0 part [SWAP]
└─sda1 8:1 0 476G 0 part /
因为Linux根分区也在SSD硬盘上,因此没法在仪器上修改SSD的容量,需要离线操作。
用傲梅分区助手
为了方便工程部的同事操作,先尝试用Windows软件傲梅分区助手对SSD分区进行调整,结果发现它不能对ext4等Linux分区进行调节,只支持FAT32和NTFS等Windows分区,放弃。
用parted和resize2fs命令
从serverfault论坛找到一篇文档,讲解了怎么扩展分区,后面实操了下,确实可行。
解决方法
- 用再生龙U盘启动进live系统,这样根分区就不是SSD硬盘
/dev/sda
了。 - 敲命令sudo parted /dev/sda,进入parted命令的交互式界面
2.a. 输入rm 5,回车,删除5号分区(swap分区,删了没事)
2.b. 输入rm 2,回车,删除2号分区(是扩展分区,用于包裹5号分区和潜在扩展分区,删了没事)
2.c. 输入resizepart 1,回车,提示输入分区大小,输入931GB,回车,将1号分区(根分区)的容量从512GB扩容到931GB
2.d. 输入quit,回车,退出parted命令的交互式界面 - 敲命令sudo e2fsck /dev/sda1,会检查并修复1号分区的一些问题
- 敲命令sudo resize2fs /dev/sda1,会将1号分区的EXT4文件系统自动扩容到931GB
- 敲sync命令,关机,开机进BIOS,设置成从硬盘启动,再重启,就好了
存在的问题
开机启动慢
系统在grub的logo界面停留时间很久。
尝试添加swap分区,没效果。
尝试运行update-grub命令,没效果。