目录
前文回顾:
我们上一章《系统裁剪之旅(2)——系统压缩》中简单讲解了实现自定义系统的基本原理,并将样板系统的“boot”和“rootfs”进行了打包压缩。
本章内容:
添加一块新硬盘,并将已经压缩好的“rootfs”和“boot”解压到新硬盘中。
操作流程:
添加硬盘
虚拟机关闭的状态下,在对应的虚拟机上点“右键”,选择“设置,”进入“虚拟机设置”。
点击“添加”。
选择“硬盘”,然后点“下一步”。
选择“SCSI”,然后点“下一步”。
选择“创建新虚拟磁盘”,然后点“下一步”。
这里使用默认选项就可以,直接点击“下一步”。
这里也使用默认,然后点“完成”。
现在我们的虚拟机就多了一块新的磁盘了,如下图:
点击“确定”后,重新打开虚拟机。
对硬盘分区
进入系统后使用“fdisk -l”命令,可以看到多出了一块硬盘。我这里显示的路径为“/dev/sdb”
fdisk -l
使用“sfdisk”命令给磁盘分区。
sfdisk -uS --force /dev/sdb > /dev/null 2>&1 <<EOF
2048,2097152,L
2099200,4194304,S
6293504,,L
EOF
这里将磁盘分了三个区“boot”,“swap”以及“根分区(/)”。
命令中的“-uS”指的是分区所用单位为“扇区(S)”。
可以再次使用“fdisk -l”命令查看分区后的结果,如下图:
分区完毕后,需要对新分区进行格式化,命令如下:
mkfs.xfs -f /dev/sdb1
mkfs.xfs -f /dev/sdb3
mkswap /dev/sdb2
“boot”和“根分区”使用xfs文件系统,“swap”分区使用swap文件系统。
这里明确一下“/dev/sdb1”为“boot”,“/dev/sdb3”为“根分区”,“/dev/sdb2”为“swap”。
解压文件
格式化分区完毕后就可以解压上一章中的压缩包到对应分区了。
使用uncompress.sh脚本,对系统进行解压。
#!/bin/bash
HD=sdb
echo "Uncompress centos7_rootfs.tar.gz ...."
mkdir -p /mnt/linux
mount -t xfs -o defaults /dev/${HD}3 /mnt/linux
cd /mysys/
tar -xzvf centos7_rootfs.tar.gz -C /mnt/linux
sync
echo "Uncompress topos.tar.gz ...."
mkdir -p /mnt/linux/boot
mount -t xfs -o defaults /dev/${HD}1 /mnt/linux/boot
cd /mysys/
tar -xzvf centos7_boot.tar.gz -C /mnt/linux/boot
sync
echo "grub2-install ${HD} ...."
grub2-install --boot-directory=/mnt/linux/boot/ /dev/${HD}
#echo "Unmount ${HD} ...."
#umount /dev/${HD}1
#umount /dev/${HD}3
cd /
sync
脚本执行完成后结果如下:
可以使用“ls”命令查看解压后的文件: