如何为完全脱机安装制作自定义Ubuntu ISO?
我在印度,我们到处都没有可靠的互联网。 我想构建一个具有以下function的Ubuntu安装程序ISO:
- 所有专有驱动程序都应脱机使用
- 应该可以离线使用至少一个完整的语言包(例如,英语/美国)
- 某些额外的包裹
- 最后,像安装时从网上下载数据的flashinstaller或Chrome之类的东西也应该可以运行。
我该如何建造这样的东西? –
测试:自定义Ubuntu Desktop CD安装所需的工具
sudo su apt-get install squashfs-tools genisoimage
从http://releases.ubuntu.com/下载官方桌面光盘,将其复制到一个空目录中
mkdir ~/livecdtmp mv ubuntu-14.04.1-desktop-i386.iso ~/livecdtmp cd ~/livecdtmp
安装桌面.iso
sudo su mkdir mnt mount -o loop ubuntu-14.04.1-desktop-i386.iso mnt
将.iso内容解压缩到dir’extract-cd’
sudo su mkdir extract-cd rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
解压缩桌面系统和SquashFS文件系统
sudo su unsquashfs mnt/casper/filesystem.squashfs mv squashfs-root edit
准备和chroot
sudo su cp /etc/resolv.conf edit/etc/ cp /etc/hosts edit/etc/ mount --bind /dev/ edit/dev chroot edit mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts 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
删除,安装和升级包。
如果您修改了内核,init脚本或添加了新的内核模块,则需要重建initrd.lz文件并将其替换为casper目录。
sudo su chroot edit mkinitramfs -o /initrd.gz 3.13.0-25-generic
(将内核版本替换为CD将引导的版本 – 可以在edit / lib / modules中找到)
退出chroot jail并将此文件移至extract-cd / casper:
exit mv edit/initrd.lz extract-cd/casper/
删除不再需要的任何临时文件。
apt-get clean Or rm -rf /tmp/* ~/.bash_history
如果您安装了软件,请务必运行
rm /var/lib/dbus/machine-id & rm /sbin/initctl dpkg-divert --rename --remove /sbin/initctl
卸载特殊文件系统并退出chroot
umount /proc || umount -lf /proc umount /sys umount /dev/pts exit sudo su umount edit/dev
生成CD映像并压缩文件系统
sudo su chmod +w extract-cd/casper/filesystem.manifest chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop rm extract-cd/casper/filesystem.squashfs mksquashfs edit extract-cd/casper/filesystem.squashfs -comp xz -e edit/boot printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size nano extract-cd/README.diskdefines cd extract-cd rm md5sum.txt find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt 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 ../ubuntu-14.04.1-desktop-i386-custom.iso .
将图像刻录到CD
cdrecord dev=/dev/cdrom ubuntu-14.04.1-desktop-i386-custom.iso