Я ищу руководство по ручной установке Linux...
без классической вспомогательной настройки...
просто скопировав файлы с исходного носителя на целевой...
и настроив минимально необходимые параметры.
(это в образовательных целях)
- создание разделов и форматирование целевого диска...
- копирование минимального количества файлов с исходного на целевой диск (ручное копирование, файл за файлом)
- создание минимально необходимых папок (/root /bin /etc ...)
- создание минимальных файлов конфигурации (/etc/???)
- выбрать и установить загрузчик для MBR... и другой для GPT/EFI
Любой современный дистрибутив, например Arch/Alpine/Kali/UBUNTU-Minimal/...
?может кто-нибудь указать мне на какой-нибудь документ/видео по этой теме
Спасибо
решение1
Вы можете начать с загрузочных образов. Вот некоторые из них с разными названиями и размерами.
]# ls *.iso -dsh
607M OL-x86_64-boot-uek.iso
603M archlinux-2019.01.01-x86_64.iso
258M install-gentoo_minimal.iso
2.6G slackware64-14.2-install-dvd.iso
882M ubuntu-18.10-live-server-amd64.iso
Такой ISO-образ можно смонтировать по циклу даже без него -o loop
(но с mkdir MNTPOINT
указанием каталога):
]# mount install-gentoo_minimal.iso iso
mount: /root/sda1/LINUX/iso: WARNING: device write-protected, mounted read-only.
]# ls iso
README.txt boot gentoo.efimg grub image.squashfs isolinux livecd
Эти файлы имеют важное значение:
]# ls -lh iso/isolinux/gentoo* iso/gentoo.efimg iso/image.squashfs
-rw-r--r-- 1 root root 6.4M Jan 9 2019 iso/gentoo.efimg
-rw-r--r-- 1 root root 236M Jan 9 2019 iso/image.squashfs
-rw-r--r-- 1 root root 3.8M Jan 9 2019 iso/isolinux/gentoo
-rw-r--r-- 1 root root 5.1M Jan 9 2019 iso/isolinux/gentoo.igz
gentoo.efimg
Опять же: mount [-o loop] iso/gentoo.efimg img/
после создания точки монтирования (dir), например "img/". Тогда вы получите:
]# file img/EFI/BOOT/*
img/EFI/BOOT/BOOTIA32.EFI: PE32 executable (EFI application) Intel 80386 (stripped to external PDB), for MS Windows
img/EFI/BOOT/BOOTX64.EFI: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows
img/EFI/BOOT/grubia32.efi: PE32 executable (EFI application) Intel 80386 (stripped to external PDB), for MS Windows
img/EFI/BOOT/grubx64.efi: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows
img/EFI/BOOT/mmia32.efi: PE32 executable (EFI application) Intel 80386 (stripped to external PDB), for MS Windows
img/EFI/BOOT/mmx64.efi: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows
Это разные вариации загрузчиков EFI. Альтернативой является использование Uefi Shell (или MBR...). Но вот BOOTX64.EFI
и др.
изображение.squashfs
Это Squashfs filesystem
согласнорасширениеи file
команду. Так что вы (цикл) монтируете его так же, как образ iso.
Он содержит файлы для корневого раздела.
]# ldd sq/bin/bash
linux-vdso.so.1 (0x00007fffe97ef000)
libreadline.so.7 => not found
libc.so.6 => /usr/lib/libc.so.6 (0x00007f0d4e221000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f0d4e6c5000)
]# ./sq/bin/bash
./sq/bin/bash: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory
Это показывает, что для обычного /bin/bash также нужны некоторые библиотеки, версии и ссылки.
iso/isolinux/gentoo
]# file iso/isolinux/gentoo
iso/isolinux/gentoo: Linux kernel x86 boot executable bzImage, version 4.14.83-gentoo (root@catalyst) #1 SMP Wed Jan 9 01:58:22 UTC 2019, RO-rootFS, swap_dev 0x3, Normal VGA
Ядро (bzImage). С Uefi вы просто копируете его в ESP. В противном случае (MBR) в какой-то каталог, а затем grub-...,
iso/isolinux/gentoo.igz
Сжатый initrd. С помощью xz
и cpio -t
вы можете вывести список:
]# xz -cd iso/isolinux/gentoo.igz | cpio -t lib/modu\*
lib/modules
lib/modules/4.14.83-gentoo
lib/modules/4.14.83-gentoo/modules.order
lib/modules/4.14.83-gentoo/modules.symbols
...
grub/grub.cfg
На iso есть .
menuentry 'Boot LiveCD (kernel: gentoo)' --class gnu-linux --class os {
linux /isolinux/gentoo root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs
initrd /isolinux/gentoo.igz
После копирования bash и четырех библиотек/зависимостей (см. ldd
выше) на отформатированный раздел sdXY
вы получите следующие 3 аргумента загрузки:
gentoo
root=/dev/sdXY
init=/bin/bash
initrd=gentoo.igz
Ваши пункты 3) и 4) (каталоги и файлы конфигурации) являются второстепенными, для минимального эксперимента. А если он не такой уж и минимальный, то это равносильно созданию нового дистрибутив...
Основная сложность — сам процесс загрузки, просто из-за множества возможностей, плюс MBR против UEFI. Я пропустил init/systemd и login. Разбиение на разделы тоже, но оно (или должно быть, по логике) в любом случае отделено от установки. Я пропустил все, кроме /bin/bash.
Это способ избежать «классической вспомогательной настройки» и сделать все с нуля, за исключением компиляции.
Я взял gentoo в качестве примера только потому, что это было предложено. Файлы .iso, перечисленные вверху, очень похожи, за исключением размера. Вы можете извлечь двоичные файлы из любого из них, как показано.