unsquashfs的部署和用法

时间:2021-06-10 05:47:53

场景说明:在定制根文件系统的时候,我们可以尝试使用LiveCD下LiveOS提供的文件系统,通过修改这个文件系统,然后重新打包的方式,定制一个启动系统。部署这样子的文件系统环境是非常有用的。

1)和虚拟机创建一个共享文件夹,方便刻盘使用,当然前提是vmvare tool必须的!!

2)空间不小于¥GB,squashfs.img文件是600MB,解压之后是1500M,同时需要打包的环境。

3)创建文件夹squashfs-root文件夹,使用unsquashfs解压


unsquashfs -d(指定解压出来的squashfs-root文件夹的路径)
    -f(指定squashfs.img的全路径)

 

首先挂载光盘,然后,指定解压出来的路径到squashfs-root,然后指定squashfs.img文件目录。

 

4)

将squashfs.img文件解压之后,获得一个squashfs-root的文件
squashfs-root目录下的文件
 ext3fs.img文件

mount -o loop,rw ext3fs.img  /mnt/livecd-root/

现在我们可以进入到livecd-root目录,看到五脏俱全的文件系统,

5)   在当前的控制台下切换根文件系统,使用chroot,这是一个将当前的目录,看做是根文件系统的样子,我们可以直接操作,而留下的痕迹就是直接改变这个文件系统,而不是宿主。

chroot 当前控制台切换到当前的目录作为根文件系统

 

这个时候,这个地点,使用chkconfig,rpm 等等绝对是影响深远,但是不损分毫整个原有系统,一个虚影的存在。

 

6)重新打包是一个好的主意:

mksquashfs squashfs-root/   squashfs.img

7)

8)替换掉原有的文件,这样子就打上了自己的烙印

9)重新制作IOS镜像

制作光盘镜像的指令如下:
进入到光盘文件的当前目录:
[root@localhost iso]# ls
EFI  file  GPL  isolinux  LiveOS
[root@localhost iso]# mkisofs -r -T -J -L -V 'FEDORA' -o /mnt/hgfs/D/CD/FEDORA.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table  ./ 

详细说明:-o 是output指定ISO输出的文件路径
   -V 是Set Volume ID指定光盘的卷标ID(必须和syslinux.cfg中的root的后缀一致)
   -b 是开机映像文件,指定在制作可开机光盘时所需的开机映像文件