91Linux - squashfs
type: channel
link: https://91linux.org/tag/squashfs/
items: 定制ubuntu16.04笔记2
items: 定制Ubuntu16.04笔记1

定制ubuntu16.04笔记2
type: item
date: 2020-04-13T13:13:02+08:00
description: 一、安装需要使用的软件sudo apt-get install squashfs-tools genisoimage #装入 squashfs文件系统处理工具以及 ISO制作工具 sudo modprobe squashfs #加载 squashfs模块 二、提取光盘内容1、创建一个livecd文件夹作为工作目录mkdir ~/livecd 2、挂载ubuntu光盘镜像cd ~/livecd mkdir mnt sudo mount -o loop ubuntu-14.04-desktop-i386.iso mnt 3、展开ubuntu镜像文件中的内容到 mycd 目录mkdir mycd sudo cp -Ra mnt/* mycd 三、解压squashfs系统文件1、挂载 squashfs 文件系统mkdir squashfs sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs 2、展开 squashfs 文件系统中的内容到 myedit 目录下mkdir myedit sudo cp -Ra squashfs/* myedit/(这一步需要较长的时间) 四、配置设置自己的系统1、复制resolv.conf到系统目录sudo cp /etc/resolv.conf myedit/etc/ 2、hosts复制一份过去sudo cp /etc/hosts myedit/etc/ 3、替换apt源rm /home/yourname/livecd/myedit/etc/apt/sources.list cp /etc/apt/source.list /home/yourname/livecd/myedit/etc/apt apt-get update 4、在自己系统上挂载一些重要的目录sudo mount --bind /dev/ edit/dev sudo chroot myedit mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts 五、安装卸载系统中的软件，配置以达到自己的要求1、安装卸载软件cd ~livecd/ sudo chroot myedit sudo apt-get install 软件名 sudo apt-get remove 软件名 2、进行清理sudo apt-get autoremove sudo apt-get clean 3、记得卸载刚才加入的挂载，退出chroot环境umount /proc umount /sys umount /dev/pts exit sudo umount myedit/dev 六、生成自己的ubuntu系统镜像playubuntu.iso1、重新压缩系统文件到filesystem.squashfssudo rm mycd/casper/filesystem.squashfs //删除原有的filesystem.squashfs sudo mksquashfs myedit mycd/casper/filesystem.squashfs //生成自己的filesystem.squashfs 2、创建playubuntu.isocd mycd sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../playubuntu.iso ~/livecd/mycd/ (这是一条命令) 七、完成后我们可以在virtualbox虚拟机里测试了

定制Ubuntu16.04笔记1
type: item
date: 2020-04-13T13:06:07+08:00
description: 挂载ISO，复制出需要的文件mkdir ~/ISOBUILD mount -o loop ubuntu-mini-remix-16.04-amd64.iso /media cp -av /media/* ~/ISOBUILD cp -av /media/.disk ~/ISOBUILD rm -f ~/ISOBUILD/.disk/casper-uuid-generic umount /media intrd.lz 的解压重打包mkdir ~/INITRD ; cd ~/INITRD cp ~/ISOBUILD/casper/initrd.lz initrd.lzma lzma -dkf initrd.lzma cpio -idv initrd rm -rf conf/uuid.conf rm -rf initrd.lzma ; rm -rf initrd sudo find | cpio -H newc -o | lzma > initrd.lz cp initrd.lz ~/ISOBUILD/casper/initrd.lz squashfs的重新封装cd ~/ unsquashfs ~/ISOBUILD/casper/filesystem.squashfs mount --bind /dev ~/squashfs-root/dev mount -t proc proc ~/squashfs-root/proc mount -t sys sys ~/squashfs-root/sys chroot squashfs-root 各种自定义开始...定制结束exit mksquashfs squashfs-root ~/ISOBUILD/casper/filesystem-new.squashfs mv ~/ISOBUILD/casper/filesystem.squashfs /~ mv ~/ISOBUILD/casper/filesystem-new.squashfs ~/ISOBUILD/casper/filesystem.squashfs 生成最终的ISOmkisofs -R -J -l -V 'ubuntu-12.04-base-live' -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ~/ubuntu-12.04-base-live.iso ~/ISOBUILD 关键点~/ISOBUILD/.disk/casper-uuid-generic conf/uuid.conf 这两处一定要删除，不然启动的时候 initrd检测的UUID信息和这里定义的不一致，导致filesystem.squashfs挂载失败，肯定启动不了，这是很多网上的文章都没提到，有一点疑惑 还不知道这个UUID到底是谁的UUID，欢迎大神指点迷津