Как создать ZFS zpool, который может читать GRUB

Я добавлю еще несколько вариантов, если у вас есть sed или Perl установлен:

#!/bin/bash
ext=$(<<<"$1" sed -n 's/^[^.]*\.//p')
printf "Extension: $ext\n"
ext=$(<<<"$1" perl -ne 's/^.*?\.//&&print')
printf "Extension: $ext\n"
exit 0
  • s /^[^.pting*\.// p в sed и s /^.*?\./ / && print в perl : попробуйте подставить самую короткую последовательность символов, а не . , за которым следует . символ в начале строки; если подстановка может быть произведена, выведите результат подстановки;
% bash script.sh file.bin
Extension: bin
Extension: bin
5
05.06.2018, 13:51
1 ответ

Grub не может надежно выполнить список каталогов zpool из-за ошибки, подтвержденной в списке рассылки:

listing directory contents in Grub is broken, I have a patch lying around that fixes that specific issue. if you get strange error messages (e.g., something like invalid BP type or compression algorithm), it's likely this issue.

Эта проблема присутствует в Grub, установленном из ArchLinux, а также в Fedora 28. Ubuntu, однако, похоже, исправил свой Grub, чтобы исправить это (, подтвержденное в Ubuntu 16.10 ).

Однако Grub может читать файлы, необходимые для загрузки. Вы можете создать zpool, который будет загружаться Grub следующим образом:

zpool create -m none "$ZPOOL" "$RAIDZ" "${DISKS[@]}"

где переменные определяют имя пула, например mypool, уровень рейда, например. mirrorи диски, например/dev/disk/by-id/...(два диска требуются для зеркала ).

Вам необходимо создать набор данных

zfs create -p "$ZPOOL"/ROOT/archlinux

И вам нужно установить точку монтирования набора данных:

zfs set mountpoint=/ "$ZPOOL"/ROOT/archlinux

Затем вы можете загрузить его с помощью Grub, используя такие команды, как:

insmod part_gpt
search --set --label mypool
linux /ROOT/archlinux@/boot/vmlinuz-linux zfs=mypool rw
initrd /ROOT/archlinux@/boot/initramfs-linux.img
boot

Я написал этот сценарий , чтобы протестировать его на машине VirtualBox. Я установил Arch из ISO на обычный корень ext4, а затем использовал его для установки нового корня ZFS на два зеркальных виртуальных диска. Вышеприведенное является кратким описанием -, см. сценарий для получения полной информации.

5
27.01.2020, 20:42

Теги

Похожие вопросы