Инструкции под Arch
Теглим исо-то, което ще модваме .
В случая ще ползваме
LMDE-6-Rescue-amd64
1. Инсталираме някои зависимости:
Код: Избери всички
sudo pacman -S squashfs-tools xorriso syslinux mtools dosfstools
2. Създаваме работна папка
3. Отиваме в нея
4. Създаваме папки
extract-cd и
mnt
5. Монтираме исо-то (в случая съм го изтеглил в Downloads):
Код: Избери всички
sudo mount -o loop ~/Downloads/LMDE-6-Rescue-amd64.iso mnt
6. Местим съдържанието на исото в
extract-cd (без
/casper/filesystem.squashfs)
Код: Избери всички
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
7. Разопаковаме
squashfs и местим в папка
edit
Код: Избери всички
sudo unsquashfs mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit
8. За да пуснем интернет-а на chroot средата, копираме resolv.conf и монтираме /dev
Всеки ред от този файл е DNS IP адрес. Например там може да сложите Google DNS-a 8.8.8.8
Код: Избери всички
sudo cp /etc/resolv.conf edit/etc/
sudo mount --bind /dev/ edit/dev
sudo mount --bind /run/ edit/run
9. Chroot-ваме към edit
10. Монтираме някои важни точки и експотваме променливи:
Код: Избери всички
mount -t proc none /proc && mount -t sysfs none /sys && mount -t devpts none /dev/pts
export HOME=/root && export LC_ALL=C
10.1
Код: Избери всички
dbus-uuidgen > /etc/machine-id
ln -fs /etc/machine-id /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
10.2
С първата команда отиваме в chroot домашната папка.
С втората проверяваме какво има в нея и запомняме какво има. Ако има файлове/папки там създадени от нашата работа - ги изтриваме когато приключим.
11. Обновяваме apt индекса
12. Сега e моментът да правим всякакви къстамизации. В случая само ще инсталирам
arch-install-scripts.
Този пакет ще инсталира
arch-chroot, който е полезен, когато искаме от жива среда да chroot-нем към Arch, за по-лесно:
13. Когато сме готови по предната точка, почистваме, създаваме празен /etc/resolv.conf и излизаме от средата и демонтираме:
Редът е важен на комндите . Всеки ред е отделна команда.
Код: Избери всички
apt-get clean
truncate -s 0 /etc/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
cd
ls -la
rm -vr .local
echo "" > /etc/resolv.conf
ls -la /tmp/
rm -rf /tmp/* /tmp/.* ~/.bash_history
umount /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev
sudo umount edit/run
sudo umount mnt
14.Опаковаме имиджа
Код: Избери всички
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs
15.Обновяваме файлът за размера, като временно му променяме правата, за да можем да го презапишем:
Код: Избери всички
sudo chmod 666 extract-cd/casper/filesystem.size
sudo printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
chmod 444 extract-cd/casper/filesystem.size
16.Генерираме нова md5 сума на файловете:
Код: Избери всички
cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
17. Създаваме FAT16 UEFI boot disk image - efiboot.img
Този efiboot.img съдържа в себе си следното:
bootia32.efi
bootx64.efi
grubx64.efi
grub.cfg
В случая горните файлопве ги има в имиджа
Но ако при вас ги няма, ще трябва да прочетете как да ги създадете .
Аз ги ползвам наготово.
За справка вижте приложените линкове с литература
Kомандата(не ме пуска да я копирам тук директно гърми, затова с pastebin):
18. Накрая стигаме да билднем крайния исо файл
Полученото исо - linuxMintCprog.iso можем вече да го изпечедм на флашка с balena-etcher
Полезни линкове:
https://github.com/syzdek/efibootiso
https://www.willhaley.com/blog/custom-d ... vironment/
https://wiki.debian.org/RepackBootableISO
https://forums.linuxmint.com/viewtopic. ... 2&t=107350
CPU~Dual core AMD Athlon 64 X2 5200+ (-MCP-) speed~2700 MHz (max) Kernel~4.15.0-33-generic x86_64 Up~1 day Mem~4869.6/7976.7MB HDD~2400.5GB(45.8% used) Procs~313 Client~Shell inxi~2.3.56