如何为完全脱机安装制作自定义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