Двойная загрузка больше не загружает Debian/GRUB, только Windows

В оболочке POSIX shу вас есть ровно один массив:$@(массив позиционных параметров, то есть $1, $2,... ). Вы устанавливаете его значения с помощьюset:

set -- curl git htop mc tree vim

или из командной строки:

./myscript.sh curl git htop mc tree vim

Затем,

apt --yes install "$@"

Заключение раскрытия $@приводит к тому, что массив расширяется до элементов в кавычках . То есть, если массив $@содержит a wordи another word, "$@"будет расширен до этих двух строк . Отсутствие кавычек $@приведет к расширению до четырех строк a, word, anotherи word. Поведение без кавычек зависит от содержимого $IFS.

Обратите внимание, что в bashвы также хотели бы заключить в двойные кавычки расширение ${PACKAGES[@]}:

apt --yes install "${PACKAGES[@]}"

Связанные:Массивы в Unix Bourne Shell


Вы не на самом деле "соединяете элементы пробелами" здесь. Да, если вы echoзначения, вы получите пробелы между ними, но это разница между

set -- a b c d
printf '>%s<\n' "$@"

, что дает

>a<
>b<
>c<
>d<

(четыре отдельных аргумента, как вам и нужно)

и

printf '>%s<' "$*"

, что дает

>a b c d<

(один единственный аргумент с элементами , соединенными пробелами(первый символ $IFS), что на самом деле не то, что вы хотите использовать с вашей командой apt install)

1
16.03.2020, 22:20
1 ответ

Я бы попытался повторить процесс установки GRUB (Если кажется, что хотя бы grub загружается, вы можете пропустить шаг 3):

  1. загрузка с linux live iso (например. Debian live iso)
  2. смонтировать системный раздел efi :mount /dev/sda1 /mnt
  3. grub нужны устройства:mount --bind /dev /mnt/dev
  4. chroot в вашу систему Debian:chroot /mnt
  5. переустановите запись grub в диспетчере загрузки прошивки :grub-install --target=x86_64-efi --efi-directory=/mnt
  6. разрешить grub определять установленные операционные системы (, если я правильно помню, grub должен выводить обнаруженные операционные системы ):grub-mkconfig -o /mnt/grub/grub.cfg

https://fosswire.com/post/2009/05/restoring-overwritten-grub/

1
28.04.2021, 23:20

Теги

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