Двойная загрузка Ubuntu и Windows 8. w8 загружается через оболочку личинки, но не из меню

export $key=$val должен работать просто великолепно в bash. Я подозреваю, что Вашей проблемой является канал (|). Все команды в конвейере выполняются в подоболочке. В Вашем примере, экземпляре bash это запускает Ваш скрипт, разветвится от 2 подоболочек: один для cat $1 и другой для while read .... Переменные присвоены и экспортированы в подоболочке, выполняющей цикл с условием продолжения, и затем все они быстро выводятся, когда подоболочка выходит. Один способ зафиксировать это не состоит в том, чтобы породить подоболочки вообще. Вместо бесполезного использования кошки попробуйте перенаправление вместо этого:

while read ...; do
   ...
done < "$1"

BashFAQ 24 объясняет это в намного больших деталях.

Альтернативный подход должен просто получить файл с добавленным экспортом:

. <(sed '/^export/!s/^/export /' "$1")

<( ) замена процесса.

Как дополнительное предупреждение, так как Вы читаете переменные среды из аргумента, необходимо удостовериться что файл аргумента $1 надежный источник, таким образом, он не может сделать плохих вещей к Вашему сценарию.

3
02.02.2014, 23:37
4 ответа

Взгляните на перенаходку, это довольно полезно и гладко (и действительно загружает win8 в моих тестах, выполненных при добавлении поддержки UEFI ALT Linux).

Это не загрузчик, а скорее диспетчер начальной загрузки, таким образом, это позволит Вам выбирать между WBM и GRUB с обеими способностями к на самом деле chainload (в) соответствующем ядре.

0
27.01.2020, 21:45

Необходимо предоставить UUID Системного устройства системы на поисковой строке (в конце). И удалите - тег BIOS, так как Вы используете EFI для начальной загрузки.

Для нахождения UUID выполните следующее:

sudo grub-probe  --target=fs_UUID /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
0
27.01.2020, 21:45
  • 1
    Привет Doug, спасибо за Ваше предложение, я попробую его, после того как я возвращаюсь домой! –  julumme 24.02.2013, 20:08

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

У меня есть два диска здесь, и личинка перечисляла их как hd1 и hd2. Я мог выяснить просто использование команды личинки с опцией, нажимающей 'c' на экране личинки и выполняющей ls впоследствии.

Это перечисляет все gpt разделы и соответствующие диски, так как у меня есть различные разделы на обоих дисках I, мог легко определить, где был мой efi файл, и затем это был просто вопрос изменения местоположения записей личинки в корректный раздел, где мой efi файл находился в.

Заметьте, что путь chainloader должен соответствовать пути без точки монтирования. Можно проверить это использование дисковой утилиты на Ubuntu!

Теперь у меня есть просто ошибка при высказывании, что поисковый тип является неуказанным, но начальная загрузка приносит мне загрузчик окон без проблемы.

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

0
27.01.2020, 21:45
  • 1
    Ответы должны рассмотреть вопрос исходного плаката. Это не предназначено, чтобы быть похожим на форум. Перефразируйте свой ответ так, чтобы это было более характерно для вопроса OP, или удалите его. –  slm♦ 09.02.2013, 17:58

Проблема в том, что вы уже установили свой корень в ' (hd0,gpt1 )', который, как я полагаю, является (вашим /boot/efiкаталогом ), где находится ваш grub.

Следовательно, написание /boot/efi/...эквивалентно написанию /boot/efi/boot/efi..., которого, скорее всего, не существует.

Вы должны изменить /boot/efi/EFI/...просто на/EFI/...

0
27.01.2020, 21:45

Теги

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