. Наконец-то мне удалось исправить проблему, и вот шаги, которые я предпринял на случай, если кто-то еще столкнется с такой же проблемой. .
Сначала вам необходимо загрузить установку с установочного диска или с помощью действующей версии.
Для этого нужно войти в раздел установки программы установки и нажать Прервать
, а затем внутри синий экран после Установка
-> Загрузите установленную систему
, чтобы войти в вашу систему.
После этого вам нужно открыть Настройки
, а затем перейти на страницу настроек Яст
. Наконец, нажав Boot Loader
, вы можете установить GRUB2 в свою MBR.
После этого загрузится экран GRUB.
Я столкнулся с другой проблемой: при выборе OpenSuse в grub возникло 2 ошибки, указывающие на то, что команды linuxefi
и initrdefi
не могут быть найдены.
Это исправлено загрузкой в режиме восстановления и монтированием корневого раздела
, редактированием /boot/grub2/grub.cfg
и заменой каждого экземпляра linuxefi
и initrdefi
их эквивалентами, отличными от efi, которыми соответственно являются linux
и initrd
.
Я не знаю такого cat
аромата, но вот решение, которое почти работает:
mkfifo myfifo; tail -c +1 -f myfifo | tar xfJ -
dd if=/dev/sr0 of=myfifo
dd
завершится, извлеките DVD. tail
и tar
. Хитрость заключается в использовании tail
для непрерывного чтения из именованного канала. Вывод tail
затем передается команде, которую вы хотите запустить. Первоначально труба не открыта, поэтому ничего не происходит. Но когда вы начинаете закачивать данные в канал с помощью dd
, tail
подхватывает их и пересылает вашей команде.
Волшебство происходит, когда поток данных в канал останавливается.:tail
дескриптор стандартного выходного файла остается открытым, что приводит к приостановке выполнения вашей команды. Между тем, tail
просто ожидает ввода данных.
Причина, по которой я сказал, что это почти работает, заключается в том, что, похоже, существует проблема с буферизацией, из-за которой tail
не записывается последний бит данных, переданных в него. Я надеюсь, что кто-то может дать представление о том, как решить эту проблему.
Вы можете написать свой catpause
скрипт:
#!/bin/bash
while read -p 'ready ? ' >&2
do if [ y = "$REPLY" ]
then cat /dev/dvd
fi
done |
tar xJf -
Он предлагает вам ответить на stderr
, и если это y
, вы копируете DVD в канал, читаемый командой tar
. Когда закончите, введите элемент управления -D для конца -файла -.