Переупорядочить строки, соответствующие строке в Bash

Выходные данные efibootmgrуказывают, что первым не -загрузочным элементом USB, указанным в BootOrder, является 0001, что соответствует строке Boot0001-, которая является загрузчиком Windows. Таким образом, Windows 10 только что поднялась на вершину списка, как это иногда происходит во время крупных обновлений.

Сначала определите системный раздел EFI, используя UUID, указанный в выводе efibootmgr:

.
# blkid | grep 8f77a3e-99ca-42d8-9191-96d66428a9f6

Это должно идентифицировать устройство Linux (, вероятно, что-то вроде /dev/sd*), соответствующее фактическому ESP, используемому прошивкой. Убедитесь, что он установлен в /boot/efi; некоторые дистрибутивы Linux фактически оставляют его отключенным по умолчанию.

Затем убедитесь, что /boot/efi/EFI/GRUB/grubx64.efiили /boot/efi/EFI/arch/grubx64.efiсуществуют.

Если ни один из них на самом деле не существует, запустите grub-install <disk device reported by blkid>:, который должен это исправить.

Если один из этих grubx64.efiфайлов существует, вы можете добавить Linux обратно в порядок загрузки с помощью:

# efibootmgr -o 2001,0002,0004,0001,2002,2003

(Это соответствует «попробуйте сначала выполнить загрузку UEFI с жесткого диска USB, затем \EFI\GRUB\grubx64.efiс раздела ESP, затем \EFI\arch\grubx64.efiс раздела ESP, затем вернуться к загрузчику Windows и параметрам загрузки с DVD и сети».)

Как правило, последний шаг — это единственное, что вам понадобится после крупного обновления Windows, но если что-то действительно привело к полной перезаписи содержимого раздела ESP, вам также может понадобиться шаг grub-install.

0
19.05.2020, 02:53
1 ответ
sed -n '
/ P /p   #If line contains " P ", print it
/ P /!H  #Else, append it to hold space
${       #On last line
  x      #Exchange hold space with pattern space
  s|\n|| #Remove first extra newline
  p      #Print
}' file

Образец исполнения с эквивалентным -вкладышем:

$ cat file
foo 1 some-string
    P another-string
bar 5 and-another-string
APstring
    A P string
ipsum
ARP
    P VC
$ sed -n '/ P /p;/ P /!H;${x;s|\n||;p;}' file
    P another-string
    A P string
    P VC
foo 1 some-string
bar 5 and-another-string
APstring
ipsum
ARP
3
18.03.2021, 23:34

Теги

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