Как мне создать собственный Ubuntu ISO для полностью автономных установок?
Я живу в Индии, и у нас нет надежного Интернета везде. Я хотел бы создать установочный ISO-образ Ubuntu со следующими функциями:
- Все проприетарные драйверы должны быть доступны в автономном режиме
- По крайней мере, один полный языковой пакет (скажем, английский / США) должен быть доступен в автономном режиме
- Определенные дополнительные пакеты
- И наконец, такие вещи, как flashinstaller или Chrome, которые загружают данные из Интернета во время установки, также должны работать.
Как мне создать нечто подобное? -
1 ответ
Проверьте это: настройте Ubuntu Desktop CD Установите необходимые инструменты
sudo su
apt-get install squashfs-tools genisoimage
Загрузите официальный CD для рабочего стола с 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 в каталог '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
Подготовить и закрепить
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
Удалить, установить и обновить пакеты.
Если вы изменили ядро, сценарии инициализации или добавили новые модули ядра, вам нужно пересобрать файл initrd.lz и подставить его в каталог casper.
sudo su
chroot edit mkinitramfs -o /initrd.gz 3.13.0-25-generic
(замените версию ядра на ту, с которой будет загружаться компакт-диск - это можно найти в edit/lib/modules)
Выйдите из тюрьмы chroot и переместите этот файл в 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
Создание образа компакт-диска и сжатие файловой системы
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