Это настройки Debian, позволяющие настройкам сценария инициализации SysV из /etc/default/networking применяться к служебному файлу systemd.
А именно:
Они не задокументированы как внутренние элементы интеграции ifupdown в systemd.
источник :Чтение /etc/default/networking при запуске из systemd. Закрывает:#806883
Add an undocumented --read-environment option which will cause the VERBOSE, CONFIGURE_INTERFACES and EXCLUDE_INTERFACES environment variables to be read and act in the same way as with ifupdown's SysV init script. This allows the use of EnvironmentFile=-/etc/default/networking in the systemd service file.
Во-первых, MBR (Legacy )становится все менее распространенным в наши дни и постепенно заменяется EFI. Поскольку в вашем вопросе прямо не говорится, что вы знаете, что используете устаревшую загрузку, а не EFI, я предлагаю вам проверить, что вы на самом деле используете. Для этого загрузитесь в рабочую (основную )систему Debian и найдите:
ls /sys/firmware/efi/efivars/
Если это существует, значит, вы загрузились через EFI. Вы также должны заметить, что у вас есть каталог /boot/efi/
, в котором смонтирован раздел EFI.
У вас есть рабочая среда, поэтому для решения проблемы вы можете использовать рабочую среду для загрузки в «сломанную» среду.
Вы упомянули, что используете зашифрованный LVM. Это делает это немного более сложным. Первое, что вам нужно сделать, это разблокировать зашифрованный диск с помощью пароля восстановления шифрования :
.# Assuming your LVM is /dev/vg/encrypted
# This will create a decrypted block device /dev/mapper/decrypted
cryptsetup open /dev/vg/encrypted decrypted
Затем смонтируйте вашу «сломанную» систему в /mnt
и подключитесь к ней (, предполагая, что ваш загрузочный раздел USB/dev/sdb1
):
mount /dev/mapper/decrypted /mnt
mount /dev/sdb1 /mnt/boot
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /run /mnt/run
# chroot into the recovery environment
chroot /mnt
Это должно оставить командную строку внутри вашей "сломанной" системы.
Изнутри вашей системы восстановления (, описанной выше ), вам необходимо установить загрузчик в MBR вашего USB-накопителя, а НЕ в раздел /boot/
. Если ваш /boot
на USB-накопителе — /dev/sdb1
, вам необходимо установить MBR на /dev/sdb
, а НЕ /dev/sdb1
grub-install /dev/sdb
На всякий случай вам также следует запустить и обновить конфигурацию grub и initramfs:
update-grub
update-initramfs -uk all
Следите за любыми ошибками здесь.
В некоторых микропрограммах BIOS используется только один или другой способ, поэтому, если вы загрузили основную систему с EFI, вам также потребуется загрузить USB-накопитель таким же образом. Изнутри вашей среды восстановления (, описанной выше )...
.Сначала убедитесь, что на USB-накопителе есть раздел EFI.Если нет, проще всего скопировать /boot
в безопасное место и повторно -отформатировать USB-накопитель. Используйте это, чтобы интерактивно начать заново с нуля на USB/dev/sdb
:
cp -r /boot ~/old_boot
umount /boot
cfdisk -z /dev/sdb
Используя cfdisk, создайте новую таблицу разделов GPT, создайте два раздела -один "EFI" один "Linux".
Затем отформатируйте их:
mkfs.fat -F 32 -n EFI /dev/sdb1
mkfs.ext4 -L BOOT /dev/sdb2
Смонтировать и восстановить/boot
mount /dev/sdb2 /boot
cp -r ~/old_boot/* /boot
Отметьте /etc/fstab
(, например cat /etc/fstab
), убедитесь, что UUID соответствует /boot/
и добавьте запись для /boot/efi
, если необходимо, вы можете найти новые UUID с помощью:
blkid /dev/sdb1 /dev/sdb2
Затем, наконец, настройте EFI.
mount /dev/sdb1 /boot/efi
# If you've not already done so install grub efi:
apt-get install grub-efi-amd64-bin
grub-install /dev/sdb
update-grub
update-initramfs -uk all
[1] Измените 1-ю последовательность загрузки на USB из BIOS
[2] Используйте Rufus для создания загрузочного USB.
Для этого вам потребуется платформа Windows для правильной работы Rufus. Получите желаемый ISO-образ дистрибутива Linux, а затем создайте загрузочный USB-накопитель с помощью rufus.
Надеюсь, это сработает.
Существует множество инструментов для создания загрузочного USB-накопителя, работающего в Linux. Но я не нашел ни одного безупречного. Итак, я доверяю Руфусу, и он меня никогда не подводил.