Я добавлю еще несколько вариантов, если у вас есть 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
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 на два зеркальных виртуальных диска. Вышеприведенное является кратким описанием -, см. сценарий для получения полной информации.