Ubuntu16.04.4制作自定义安装光盘方案

注:本文为转载,最近有空把之前的项目复盘,顺便保存资料到网络,免得忘记。这是两年前的项目,资料是在外网找到的,已经忘记原文链接了,选择转载要贴原文链接,不得已发原创,请原作者原谅,如有冒犯请联系本人删除。

1、 下载ubuntn16.04.4安装光盘,文件为:ubuntu-16.04.4-desktop-amd64.iso
2、 使用安装光盘安装一个初始ubuntu系统,保证系统能够连通internet。
3、 打开终端,并运行:

sudo apt-get install squashfs-tools genisoimage -y

4、 创建一个工作目录,保证空间大于10G

mkdir ~/custom-img

5、 拷贝ubuntu光盘文件到工作目录(更改ubuntu-16.04.4-desktop-amd64.iso为ubuntu.iso)

cp /path/to/saved/ubuntu.iso ~/custom-img
cd ~/custom-img

备注:/path/to/saved/ubuntu.iso为基本光盘目录
6、 解压缩源光盘文件

mkdir mnt
sudo mount -o loop ubuntu.iso mnt
mkdir extract
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract

7、 执行以下命令

sudo unsquashfs mnt/casper/filesystem.squashfs 
sudo mv squashfs-root edit

8、 拷贝域名解析文件

sudo cp /etc/resolv.conf edit/etc/

9、 挂载重要工作目录

sudo mount --bind /dev/ edit/dev
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

10、 切换工作目录

export HOME=/root
export LC_ALL=C
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

11、 卸载不需要的软件包(可以不卸载,package1 package2 package3为包名,条件允许可考虑卸载游戏等不需要的软件)

apt-get purge package1 package2 package3

注意:不要使用apt-get remove卸载不需要软件,此命令会保留配置文件。Apt-get purge会删除软件及对应的配置文件。
12、 支持I386架构软件

dpkg --add-architecture i386

13、 更新软件应答包及现有系统软件包

apt-get update && apt-get upgrade

14、 安装需要预置到初始系统中的软件包(重要)

apt-get install package1 package2 package3
备注:我安装的软件

python3.6、docker18.09.1、nvidia-docker2.0.3、nvidia驱动384.13。软件具体安装方式见相关文档。
15、 清除临时文件

apt-get autoremove && apt-get autoclean
rm -rf /tmp/* ~/.bash_history
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl

16、 卸载挂载目录

umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev

17、 创建新的manifest文件

sudo chmod +w extract/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee extract/casper/filesystem.manifest
sudo cp extract/casper/filesystem.manifest extract/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' extract/casper/filesystem.manifest-desktop
 

18、 压缩文件系统

sudo mksquashfs edit extract/casper/filesystem.squashfs -b 1048576

19、 更新文件系统大小

printf $(sudo du -sx --block-size=1 edit | cut -f1) | sudo tee extract/casper/filesystem.size

20、 删除旧的MD5校验

cd extract
sudo rm md5sum.txt

21、 生成新的校验信息

find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt

22、 生成ISO文件

sudo genisoimage -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 ../name-of-your-custom-image.iso .

备注:name-of-your-custom-image.iso为新生成光盘的文件名,此时包含新软件包的ISO文件制作完成,可独立安装,安装完成后预装软件都已存在并可正常使用。

此步骤中最重要的是安装自己的软件包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值