Boot не видит мою зашифрованную ОС после обновления

В findдобавлен аргумент non_existent_dirдля генерации сообщения об ошибке.

С переменной

#!/bin/bash

error=$(find. non_existent_dir 2>&1 > output.txt)
if (($?)); then
     printf "%s\n%s\n%s\n" "message before" "$error" "message after" >> log.txt
fi

Пояснение:

  • 2>&1 > output.txt-stderr(номер 2 )перенаправлен наstdout(номер 1 )и stdoutна номер output.txt.

  • $?-статус завершения команды find. findзавершается со статусом 0, если все файлы обработаны успешно, и больше 0, если возникают ошибки.

Без переменной

find. non_existent_dir 2>&1 > output.txt | 
  awk 'NR == 1 {print "start message"}
       {print}
       END {if(NR > 0) print "end message"}' >> log.txt

Пояснение:

  1. Часть findтакая же, как и в предыдущем варианте.
  2. awkчасть -Если ввод не содержит строк (ошибок не было ), он ничего не напечатает.
    • NR == 1 {print "start message"}-если это первая строка, вывести "стартовое сообщение".
    • {print}-просто напечатайте все входные строки.
    • END {if(NR > 0) print "end message"}-проверка в конце выполнения, были ли получены какие-либо строки из ввода(NR-количество записей )? Если это так, напечатайте «конечное сообщение».
1
16.12.2019, 17:16
1 ответ

Что ж, кажется, обновления обновили мою конфигурацию grub.

Чтобы решить эту проблему, я расшифровал и смонтировал рабочий раздел, затем скопировал конфигурацию grub из рабочего раздела в личный раздел и запустилupdate-grub:

lvscan

Это дает мне два имени тома:/dev/NAME/swapи /dev/NAME/VOL. Я использую эти значения в командах ниже.

vgchange -ay # activate all of the volumes so that they can be mounted
cryptsetyp luksOpen /dev/sda3 NAME # this prompts for a password to decrypt the volume
mkdir /media/mydev
mount /dev/mapper/NAME-VOL /media/mydev # Notice that NAME and VOL are separated by a hypen instead of slash here
cp /media/mydev/etc/default/grub /etc/default/grub
update-grub
reboot
1
27.01.2020, 23:40

Теги

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