Установка Kubuntu с ручным разделением и шифрованием

Есть два экземпляра 1.1.1.1; при условии, что первый экземпляр подходит для сопоставления, сначала нужно написать простой сценарий, который генерирует требуемый вывод, а также включает поддельные подсказки, которые более или менее выполняются удаленным устройством :

.
#!/usr/bin/env expect
proc prompt {} { puts "prompt"; gets stdin; }
prompt
puts "Last update from 1.1.1.1 1d06h ago"
puts "  Routing Descriptor Blocks:"
puts "  * 1.1.1.1 from 2.2.2.2"
prompt

Я назвал этот скрипт generator; тогда также нужен другой скрипт, который вызывает этот скрипт и взаимодействует с ним. Но сначала отвлечемся на то, как быстро итерировать изменения в этих скриптах; в другом терминале я работал:

$ (echo consume; echo generate) | entr./consume
...

, который запускает сценарий consumeв любое время при изменении одного из сценариев consumeили generate. Затем я могу возиться со сценариями, чтобы взаимодействовать с подсказками, найти требуемый вывод и применить к нему регулярное выражение (прочитать regexp(n)руководство ):

#!/usr/bin/env expect
spawn -noecho./generate

expect -ex prompt
send -- "before\r"

expect -ex prompt
# this is what I used to confirm that the required prompt block
# had been matched
#puts ">>>$expect_out(buffer)<<<"

regexp {Last update from ([^ ]+) } $expect_out(buffer) unused theip
puts ">>>$theip<<<"

send -- "after\r"
expect eof

этот метод предполагает, что желаемый вывод заключен в подсказки; другим вариантом может быть expectстрока Last update...с регулярным выражением, но это может быть более сложным. Также это совпадение IP-адреса действительно может соответствовать чему угодно; используйте более точное регулярное выражение, если вам нужно проверить, что текст действительно является IP-адресом.

разные заботы:

  • Время ожидания очень мало;что произойдет, если какая-либо из задействованных систем или сетей будет работать медленно, а получение вывода займет больше времени, чем заданный тайм-аут?
  • Проверка ошибок невелика, что произойдет, если система sshвместо этого выдаст ошибку ключа хоста или приглашение, или...
1
17.05.2020, 10:45
2 ответа

Наконец-то нашел рабочее решение:

1 )Следуйте очень подробным инструкциям здесь ...

2 )...Но вместо того, чтобы использовать его сценарий установки, возьмите дружественную альтернативу btrfs -из здесь ...

3 )...И внесите одно ручное редактирование :измените вызов "cryptsetup luksFormat" на добавление " --type=luks1". Потому что согласно здесь:

Стандартный формат LUKS (Linux Unified Key Setup ), используемый инструментом cryptsetup, изменился с момента выпуска 18.04 Bionic. 18.04 использовалась версия 1 («luks1» ), но более поздние выпуски Ubuntu по умолчанию используют версию 2 («luks2» ). GRUB поддерживает только версию 1, поэтому мы должны указывать явно используемые команды, иначе GRUB не сможет установить или разблокировать зашифрованное устройство.

0
28.04.2021, 23:13

Мне помог обходной путь:

  1. Установитьubiquity-frontend-gtk
  2. Запустите команду :
    ubiquity gtk_ui
    
    в терминале

Это нормально работает в версии Ubiquity GTK.

1
28.10.2021, 05:16

Теги

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