Пересборка LiveCD Ubuntu: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
 
(не показано 17 промежуточных версий 3 участников)
Строка 1: Строка 1:
 +
=Общие шаги пересборки=
 +
 +
==Предостережение==
 +
 +
!!! Этот набор команд больше следует воспринимать как некоторые записки опытного системного администратора
 +
Нужно понимать что происходит на каждом этапе!
 +
 
  mount -o loop feisty.iso loop/
 
  mount -o loop feisty.iso loop/
 
   
 
   
Строка 13: Строка 20:
 
  nano ubuntu-source/etc/apt/sources.list
 
  nano ubuntu-source/etc/apt/sources.list
  
  mount --bind /dev/ /media/ubuntu-source/dev
+
  mount --bind /dev/ ./ubuntu-source/dev
  mount -t proc /proc /media/ubuntu-source/proc
+
  mount -t proc /proc ./ubuntu-source/proc
  mount -t sysfs /sys /media/ubuntu-source/sys
+
  mount -t sysfs /sys ./ubuntu-source/sys
  
 
  chroot ubuntu-source  
 
  chroot ubuntu-source  
  
  echo "nameserever 192.168.10.1" >> /etc/resolv.conf
+
  echo "nameserver 192.168.10.1" >> /etc/resolv.conf
 
 
  
 
  aptitude purge language-pack-ar language-pack-bn  language-pack-de language-pack-es language-pack-fr language-pack-hi language-pack-pt language-pack-xh  language-pack-ar-base language-pack-bn-base language-pack-de-base language-pack-es-base language-pack-fr-base language-pack-hi-base language-pack-pt-base language-pack-xh-base  language-pack-gnome-ar language-pack-gnome-bn  language-pack-gnome-de language-pack-gnome-es language-pack-gnome-fr language-pack-gnome-hi language-pack-gnome-pt language-pack-gnome-xh language-pack-gnome-ar-base language-pack-gnome-bn-base language-pack-gnome-de-base language-pack-gnome-es-base language-pack-gnome-fr-base language-pack-gnome-hi-base language-pack-gnome-pt-base language-pack-gnome-xh-base
 
  aptitude purge language-pack-ar language-pack-bn  language-pack-de language-pack-es language-pack-fr language-pack-hi language-pack-pt language-pack-xh  language-pack-ar-base language-pack-bn-base language-pack-de-base language-pack-es-base language-pack-fr-base language-pack-hi-base language-pack-pt-base language-pack-xh-base  language-pack-gnome-ar language-pack-gnome-bn  language-pack-gnome-de language-pack-gnome-es language-pack-gnome-fr language-pack-gnome-hi language-pack-gnome-pt language-pack-gnome-xh language-pack-gnome-ar-base language-pack-gnome-bn-base language-pack-gnome-de-base language-pack-gnome-es-base language-pack-gnome-fr-base language-pack-gnome-hi-base language-pack-gnome-pt-base language-pack-gnome-xh-base
Строка 28: Строка 34:
 
  aptitude clean
 
  aptitude clean
  
 +
=Необходимые пакеты для организации клонирования средствами dd=
 +
 +
Важно: нужно проверить, что в системе присутствуют все ветки репозитория. Иначе некоторые пакеты могут быть недоступны
 +
 +
Обычно, достаточно этих записей в /etc/apt/sources.list
 +
 +
deb http://archive.ubuntu.com/ubuntu/ eoan main restricted universe multiverse
 +
deb http://security.ubuntu.com/ubuntu/ eoan-security main restricted universe multiverse
 +
deb http://archive.ubuntu.com/ubuntu/ eoan-updates main restricted universe multiverse
 +
 +
Устанавливаем ПО по вкусу
 +
 +
apt install ssh x11vnc dcfldd xtightvncviewer
 +
 +
=Сборка без GPT=
 
  mksquashfs ubuntu-source/ ubuntu-rebuild/casper/filesystem.squashfs -noappend
 
  mksquashfs ubuntu-source/ ubuntu-rebuild/casper/filesystem.squashfs -noappend
  
  (cd ubuntu-rebuild && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
+
  mkisofs --iso-level 4 -r -V "Ubuntu-9.04-NRTC-Edition" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat  -no-emul-boot -boot-load-size 4 -boot-info-table -o /media/ubuntu-9.04-NRTC-edition.iso ubuntu-rebuild
 +
 
 +
=Сборка с учётом GPT=
 +
 
 +
apt install xorriso
 +
 
 +
nano make.sh
 +
 
 +
<pre>
 +
OLD_IMAGE=ubuntu.iso
 +
MBR_FILE=/tmp/ubuntu_isohybrid_mbr.img
 +
dd if="$OLD_IMAGE" bs=1 count=446 of="$MBR_FILE"
 +
 
 +
IMAGE=ubuntu19.10-with-dd.iso
 +
BUILD=ubuntu-rebuild
 +
 
 +
xorriso -as mkisofs -r -V "Ubuntu19.10-with-dd" \
 +
            -cache-inodes -J -l \
 +
            -isohybrid-mbr "$MBR_FILE" \
 +
            -c isolinux/boot.cat \
 +
            -b isolinux/isolinux.bin \
 +
              -no-emul-boot -boot-load-size 4 -boot-info-table \
 +
            -eltorito-alt-boot \
 +
            -e boot/grub/efi.img \
 +
              -no-emul-boot -isohybrid-gpt-basdat \
 +
            -o "$IMAGE" \
 +
            "$BUILD"
 +
 
 +
rm "$MBR_FILE"
 +
</pre>
 +
 
 +
bash make.sh
 +
 
 +
=g4l on Ubuntu 20.04=
 +
 
 +
apt install net-tools xterm dialog lzop udhcpc udpcast
 +
 
 +
export TERM=xterm
 +
 
 +
Убрать проверку пересобранной squashfs при загрузке livecd и включить полное погружение squashfs в память (чтобы можно было выдернуть загрузочный носитель) - добавить в параметры ядра при загрузке два таких параметра
 +
 
 +
toram fsck.mode=skip
 +
 
 +
Ссылки по теме:
 +
 
 +
https://unix.stackexchange.com/questions/430037/remove-bootable-usb-after-live-booting-from-it
  
mkisofs -r -V "Ubuntu-7.10-NTC-Edition-0.02" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat  -no-emul-boot -boot-load-size 4 -boot-info-table -o /home/ftp/iso/newubuntu.iso ubuntu-rebuild
+
https://askubuntu.com/questions/1230289/disk-check-on-startup-in-20-04

Текущая версия на 17:51, 21 марта 2021

Общие шаги пересборки

Предостережение

!!! Этот набор команд больше следует воспринимать как некоторые записки опытного системного администратора
Нужно понимать что происходит на каждом этапе!
mount -o loop feisty.iso loop/

rsync -ax loop/. ubuntu-rebuild/
umount loop
mount ubuntu-rebuild/casper/filesystem.squashfs loop -t squashfs -o loop

rsync -av loop/. ubuntu-source
umount loop
nano ubuntu-source/etc/apt/sources.list
mount --bind /dev/ ./ubuntu-source/dev
mount -t proc /proc ./ubuntu-source/proc
mount -t sysfs /sys ./ubuntu-source/sys
chroot ubuntu-source 
echo "nameserver 192.168.10.1" >> /etc/resolv.conf
aptitude purge language-pack-ar language-pack-bn  language-pack-de language-pack-es language-pack-fr language-pack-hi language-pack-pt language-pack-xh  language-pack-ar-base language-pack-bn-base language-pack-de-base language-pack-es-base language-pack-fr-base language-pack-hi-base language-pack-pt-base language-pack-xh-base  language-pack-gnome-ar language-pack-gnome-bn  language-pack-gnome-de language-pack-gnome-es language-pack-gnome-fr language-pack-gnome-hi language-pack-gnome-pt language-pack-gnome-xh language-pack-gnome-ar-base language-pack-gnome-bn-base language-pack-gnome-de-base language-pack-gnome-es-base language-pack-gnome-fr-base language-pack-gnome-hi-base language-pack-gnome-pt-base language-pack-gnome-xh-base
aptitude install ubuntu-restricted-extras language-support-ru language-support-extra-ru language-pack-ru language-pack-gnome-ru language-support-translations-ru 
aptitude clean

Необходимые пакеты для организации клонирования средствами dd

Важно: нужно проверить, что в системе присутствуют все ветки репозитория. Иначе некоторые пакеты могут быть недоступны

Обычно, достаточно этих записей в /etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu/ eoan main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ eoan-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ eoan-updates main restricted universe multiverse

Устанавливаем ПО по вкусу

apt install ssh x11vnc dcfldd xtightvncviewer

Сборка без GPT

mksquashfs ubuntu-source/ ubuntu-rebuild/casper/filesystem.squashfs -noappend
mkisofs --iso-level 4 -r -V "Ubuntu-9.04-NRTC-Edition" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat  -no-emul-boot -boot-load-size 4 -boot-info-table -o /media/ubuntu-9.04-NRTC-edition.iso ubuntu-rebuild

Сборка с учётом GPT

apt install xorriso
nano make.sh
OLD_IMAGE=ubuntu.iso
MBR_FILE=/tmp/ubuntu_isohybrid_mbr.img
dd if="$OLD_IMAGE" bs=1 count=446 of="$MBR_FILE"

IMAGE=ubuntu19.10-with-dd.iso
BUILD=ubuntu-rebuild

xorriso -as mkisofs -r -V "Ubuntu19.10-with-dd" \
            -cache-inodes -J -l \
            -isohybrid-mbr "$MBR_FILE" \
            -c isolinux/boot.cat \
            -b isolinux/isolinux.bin \
               -no-emul-boot -boot-load-size 4 -boot-info-table \
            -eltorito-alt-boot \
            -e boot/grub/efi.img \
               -no-emul-boot -isohybrid-gpt-basdat \
            -o "$IMAGE" \
            "$BUILD"

rm "$MBR_FILE"
bash make.sh

g4l on Ubuntu 20.04

apt install net-tools xterm dialog lzop udhcpc udpcast
export TERM=xterm

Убрать проверку пересобранной squashfs при загрузке livecd и включить полное погружение squashfs в память (чтобы можно было выдернуть загрузочный носитель) - добавить в параметры ядра при загрузке два таких параметра

toram fsck.mode=skip

Ссылки по теме:

https://unix.stackexchange.com/questions/430037/remove-bootable-usb-after-live-booting-from-it

https://askubuntu.com/questions/1230289/disk-check-on-startup-in-20-04