Разделить и объединить - с DVD!

. Наконец-то мне удалось исправить проблему, и вот шаги, которые я предпринял на случай, если кто-то еще столкнется с такой же проблемой. .

Сначала вам необходимо загрузить установку с установочного диска или с помощью действующей версии. Для этого нужно войти в раздел установки программы установки и нажать Прервать , а затем внутри синий экран после Установка -> Загрузите установленную систему , чтобы войти в вашу систему.

После этого вам нужно открыть Настройки , а затем перейти на страницу настроек Яст . Наконец, нажав Boot Loader , вы можете установить GRUB2 в свою MBR.

После этого загрузится экран GRUB.

Я столкнулся с другой проблемой: при выборе OpenSuse в grub возникло 2 ошибки, указывающие на то, что команды linuxefi и initrdefi не могут быть найдены.

Это исправлено загрузкой в ​​режиме восстановления и монтированием корневого раздела , редактированием /boot/grub2/grub.cfg и заменой каждого экземпляра linuxefi и initrdefi их эквивалентами, отличными от efi, которыми соответственно являются linux и initrd .

3
09.05.2018, 23:41
2 ответа

Я не знаю такого catаромата, но вот решение, которое почти работает:

  1. В одном концевом проходеmkfifo myfifo; tail -c +1 -f myfifo | tar xfJ -
  2. Вставьте первый DVD в дисковод DVD -ROM (напр. dev/sr0 ).
  3. Во втором концевом проходеdd if=/dev/sr0 of=myfifo
  4. Когда ddзавершится, извлеките DVD.
  5. Если у вас есть другой DVD, вставьте его в дисковод DVD -ROM и перейдите к шагу 3, в противном случае перейдите к шагу 6. ​​
  6. В первом терминале нажмите CTRL -C, чтобы закрыть tailи tar.

Как это работает

Хитрость заключается в использовании tailдля непрерывного чтения из именованного канала. Вывод tailзатем передается команде, которую вы хотите запустить. Первоначально труба не открыта, поэтому ничего не происходит. Но когда вы начинаете закачивать данные в канал с помощью dd, tailподхватывает их и пересылает вашей команде.

Волшебство происходит, когда поток данных в канал останавливается.:tailдескриптор стандартного выходного файла остается открытым, что приводит к приостановке выполнения вашей команды. Между тем, tailпросто ожидает ввода данных.

Проблема

Причина, по которой я сказал, что это почти работает, заключается в том, что, похоже, существует проблема с буферизацией, из-за которой tailне записывается последний бит данных, переданных в него. Я надеюсь, что кто-то может дать представление о том, как решить эту проблему.

2
27.01.2020, 21:18

Вы можете написать свой 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 для конца -файла -.

2
27.01.2020, 21:18

Теги

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