Установка Alpine LVM с поддержкой двойной загрузки UEFI / BIOS
Я хочу перейти от Arch + Windows [GPT, двойная загрузка с использованием встроенного меню EFI] к Alpine + Windows [GPT, поддержка устаревшей загрузки BIOS, разделы XEN, LVM для Alpine как Dom0 и виртуализированной Windows как Dom1] . Допустим, это моя «исследовательская» идея. Как сделать экземпляр окна в XEN и как его установить, выходит за рамки. Я сделаю это самостоятельно. Я касаюсь больше процесса загрузки: правильно настроенные флаги / опции, включенные функции / модули в initramfs и т. Д. Установка будет производиться на внешний жесткий диск. Для этого есть две причины: (1) убедиться, что все работает нормально, прежде чем переходить на встроенную, и (2) сделать решение переносимым / Live. Пожалуйста, не GRUB . Хотите сделать это, используя только SYSLINUX.
Итак, вот как я «представляю» структуру диска:
[mbrgpt.bin] # see [3] [protective MBR] [GPT table] EFI partition (FAT32, 200MB) # mount point is /mnt/EFI, see [1] LVM partition /boot (FAT32, 200MB) # mount point is /mnt/LVM/boot, see [2] / (EXT4, 40GB) # mount point is /mnt/LVM/root windows (NTFS, 60GB) ...
Это мой список предположений:
- [1] Мне нужно скопировать
/usr/share/syslinux/efi64/syslinux.efi
как/mnt/EFI/EFI/Boot/bootx64.efi
и создать/mnt/EFI/loader/entries/alpine.conf
. Содержание последнего должно совпадать сsyslinux.cfg
. Для справки я использую: https://wiki.alpinelinux.org/wiki/Create_UEFI_boot_USB#Create_configuration_files_for_boot_loader - [2] Я знаю, что делать / загружать часть структуры LVM не очень хорошая идея, но для исследовательских целей - все равно хотите, чтобы она была логическим томом (или не создавайте ее вообще). Я слышал на форуме Arch Linux, что SYSLINUX поддерживает это. Тем не менее, не нашел "свидетелей" в Интернете.
- [3] Если я загружаюсь с устаревшей системы BIOS,
gptmbr.bin
должен как-то найти и перепрыгнуть/mnt/LVM/boot/syslinux/ldsyslinux.c32
. Затем загрузитеsyslinux.cfg
и определите, как должно быть запущено ядро XEN. - [*] Если я загружаюсь из системы UEFI,
syslinux.efi
запускается и параметры берутся изloader/entries/alpine.conf
(конечно, контент должен совпадатьsyslinux.cfg
).
Существует некоторая неопределенность в отношении вещей, которые я не нашел много информации в Интернете:
- Разница между Syslinux
ldlinux.sys
иldlinux.c32
. В вики Arch есть некоторая информация о том, что sys является загрузчиком и загружает остальную часть себя из c32. Ничего более.. - Разница между Syslinux
mbr.bin
иgptmbr.bin
загрузочными записями. Похоже, второй это то, что мне нужно.
Это мой список "TODO" (такие вещи, как mkdir & umount были пропущены для краткости). Обратите внимание, что шаги, отмеченные (?), Требуют дополнительных пояснений:
1. Partitioning medium gdisk /dev/sdx # create new GPT table # create EFI partition and set type to "EFI System" (sdx1) # create Linux LVM part and set type to "Linux LVM" (sdx2) # set an attribute for EFI part (?) # known attributes are: 0: system partition 1: hide from EFI 2: legacy BIOS bootable (seems like this is what gptmbr.bin need to pick it up) 60: read-only 62: hidden 63: do not automount 2. Format EFI partition apk add dosfstools mkfs.fat -F 32 /dev/sdx1 3. Copy SYSLINUX's UEFI bootloader mount /dev/sdx1 /mnt/EFI cp /usr/share/syslinux/efi64/syslinux.efi /mnt/EFI/EFI/Boot/bootx64.efi 4. Install LVM apk add lvm2 rc-update add lvm # add device mapper modprobe dm-mod echo dm-mod >> /etc/modules 5. Create LVM layout pvcreate /dev/sdx2 vgcreate vg0 /dev/sdX2 # root lvcreate -n root -L 40G vg0 mkfs.ext4 /dev/vg0/root # boot lvcreate -n boot -L 200M vg0 mkfs.fat -F 32 /dev/vg0/boot # windows etc goes here ... 6. Rebuild initramfs mount /dev/vg0/root /mnt/LVM/root vi /etc/mkinitfs/mkinitfs.conf # append lvm to features=".." mkinitfs -c /etc/mkinitfs/mkinitfs.conf -b /mnt/LVM/boot 7. Create swap file mount /dev/vg0/root /mnt/LVM/root && cd /mnt/LVM/root fallocate -l 2G ./swapfile # or dd if=/dev/zero of=./swapfile bs=1M count=2048 chmod 600 ./swapfile mkswap ./swapfile swapon ./swapfile rc-update add swap # add '/swapfile none swap defaults 0 0' to /etc/fstab 8. Install SYSLINUX package & burn VBR apk add syslinux dd if=/usr/share/syslinux/gptmbr.bin of=/dev/sdx 9. Copy Alpine mount /dev/vg0/boot /mnt/LVM/boot setup-bootable /path/to/latest-alpine.iso /mnt/LVM/boot 10. Install SYSLINUX and tight things together syslinux --directory /boot/syslinux/ --install /dev/sdb1 vi /mnt/LVM/boot/syslinux/syslinux.cfg # (?) vi /mnt/EFI/loader/entries/alpine.conf # (?) Last. Store changes made locally into root lbu package - | tar -C /mnt/LVM/root -xzf -
Вопросы:
- Являются ли шаги выше хорошим способом? Если я что-то пропустил или усложнил, пожалуйста, дайте мне знать.
- Нужно ли
/dev/vg0/boot
как-то отмечать, чтобыgptmbr.bin
можно было найти раздел при загрузке? - Могу ли я избавиться от загрузочного раздела LVM и замены
/mnt/LVM/boot
с/mnt/LVM/root
которой я упомянул об этом?
0 ответов на вопрос
Похожие вопросы
-
2
Если я удалю раздел Vista, это сломает загрузчик для XP?
-
4
Ошибка диска при загрузке (возможна проблема с загрузочным сектором)
-
4
Как установить GRUB на USB-накопитель с помощью Windows Vista?
-
-
1
Создание раздела LVM на SD-карте завершается с ошибкой «устройство не найдено»
-
3
Как установить Windows 7 из eSATA?
-
3
Как я могу реорганизовать таблицу разделов, не удаляя разделы?
-
3
Vista - вытер MBR и HEAD диска - как восстановить?
-
2
Восстановление запуска Vista делает HD не загружаемым
-
1
Проблемы с производительностью LVM vs / dev / md0
-
1
Linux LVM "тома не найдены" во время загрузки