Чтобы сопоставлять числа с регулярными выражениями в case
операторах , вам потребуется оболочка, подстановочные знаки которой поддерживают регулярные выражения. Я знаю только кш93 с тех.
С глобусами ksh93 вы можете выполнить ~(E)^[0-9]+$
или ~(E:^[0-9]+$)
, чтобы использовать E
расширенное регулярное выражение в шаблоне подстановки, или ~(P)^\d+$
, чтобы использовать perl -, подобный регулярному выражению (, а также G
для базового регулярного выражения, X
для расширенного регулярного выражения, V
для регулярного выражения SysV ).
Так:
#! /bin/ksh93
for i do
case $i in
(~(E)^[0-9]+$)
n=$i;;
(*)
echo >&2 'Invalid argument!'
usage
esac
done
Вам нужно создать livedisk, а затем запустить live boot. В реальной среде выполните эти команды:
Для дисков SATA
sudo mount /dev/sda3 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo cp -n /etc/resolv.conf /mnt/etc/
sudo chroot /mnt
apt install --reinstall linux-generic linux-headers-generic
update-initramfs -c -k all
exit
sudo bootctl --path=/mnt/boot/efi install
Для дисков NVME
sudo mount /dev/nvme0n1p3 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo cp -n /etc/resolv.conf /mnt/etc/
sudo chroot /mnt
apt install --reinstall linux-generic linux-headers-generic
update-initramfs -c -k all
exit
sudo bootctl --path=/mnt/boot/efi install
В этом коде sda1
— это раздел /boot
, а sda3
— раздел /root
, которые могут отличаться для вашей установки. Запустите lsblk
, чтобы убедиться, что вы выбрали правильный жесткий диск и разделы.
Все подробности по этой ссылке.https://support.system76.com/articles/bootloader/
следуйте разделу загрузки systemd -этой ссылки, так как я думаю, что у вас нет GRUB.