Я хочу добавить пользовательские скрипты при настройке Ubuntu LiveCD.
Мой основной ответ на этот вопрос - эта статья в блоге Turnkeylinux. Это дистрибутив, созданный в Ubuntu, и в его репозитории есть набор сценариев, которые можно использовать на практике. Бонус, вы можете установить их скрипты на магистрали Ubuntu.
Также есть remastersys и пара других, но я обнаружил, что готовые сценарии действительно просты для моих нужд.
Статья:
Преобразование образа виртуального диска: VDI или VMDK в ISO, который вы можете распространять Алон Шварц - 58 комментариев | Последнее по юниту
Хороший вопрос, ответ для Конора Фокса (который был вдохновителем для этого поста - спасибо Конор !) должен был распространять свой собственный образ TurnKey PostgreSQL, чтобы другие могли его использовать.
Распространение ISO-образа в отличие от образа виртуальной машины позволяет устанавливать его на любой платформе виртуализации, а также на голое железо, с дополнительным бонусом запуска в прямом эфире.
Полагаю, это достаточно веская причина, поэтому давайте перейдем к ней.
Сначала нам нужно получить qemu-img, инструмент, связанный с qemu (серверная часть виртуализации KVM) для преобразования диска виртуальной машины в необработанный образ, и TKLPatch, механизм настройки TurnKey для упаковки ISO.
Если вы не используете установку TurnKey, см. Замечания по установке TKLPatch .
apt-get install qemu
apt-get install tklpatch
Я покажу, как преобразовать образ VMWK VMWare в формат необработанного диска. Если вы используете другую платформу виртуализации, такую как Virtualbox, см. в этом посте о преобразовании VDI в необработанный образ.
qemu-img convert -f vmdk turnkey-core.vmdk -O raw turnkey-core.raw
Затем смонтируйте необработанный диск как устройство с обратной связью.
mkdir turnkey-core.mount mount -o loop turnkey-core.raw turnkey-core.mount
GOTCHA 1 : если у вашей виртуальной машины есть разделы, это немного сложнее. Вам нужно настроить петлевое устройство, сопоставления разделов и, наконец, смонтировать раздел rootfs. Вам потребуется kpartx для настройки отображений.
loopdev=$(losetup -s -f turnkey-core.raw) apt-get install kpartx kpartx -a $loopdev # p1 refers to the first partition (rootfs) mkdir turnkey-core.mount mount /dev/mapper/$(basename $loopdev)p1 turnkey-core.mount
Теперь, сделайте копию корневой файловой системы и размонтируйте петлю.
mkdir turnkey-core.rootfs rsync -a -t -r -S -I turnkey-core.mount/ turnkey-core.rootfs umount -d turnkey-core.mount
kpartx -d $ loopdev losttup -d $ loopdev
Поскольку виртуальная машина является установленной системой, а не ISO таблица файловой системы должна быть обновлена.
cat>turnkey-core.rootfs/etc/fstab<<EOF aufs / aufs rw 0 0 tmpfs /tmp tmpfs nosuid,nodev 0 0 EOF
GOTCHA 2 : если ваша виртуальная машина использует ядро, оптимизированное для виртуализации (например, включенное в сборки TurnKey VM), вам необходимо заменить его на общее ядро, а также удалить vmware -инструменты, если установлены.
tklpatch-chroot turnkey-core.rootfs # inside the chroot apt-get update apt-get install linux-image-generic dpkg --purge $(dpkg-query --showformat='${Package}\n' -W 'vmware-tools*') dpkg --purge $(dpkg-query --showformat='${Package}\n' -W '*-virtual') exit
Наконец, подготовьте cdroot и создайте ISO.
tklpatch-prepare-cdroot turnkey-core.rootfs/ tklpatch-geniso turnkey-core.cdroot/
Вот и все!
Бонус: по умолчанию ISO загружается автоматически. Если вы хотите включить загрузочную заставку TurnKey и загрузочное меню, извлеките cdroot из ISO-образа TurnKey и скажите tklpatch-prepare-cdroot использовать его в качестве шаблона.
tklpatch-extractiso turnkey-core.iso tklpatch-prepare-cdroot turnkey-core.rootfs/ turnkey-core.cdroot/ tklpatch-geniso turnkey-core.cdroot/