Загрузка с USB с помощью GRUB
Ноутбук моего друга попал в автомобильную аварию (он в порядке!). Однако ноутбук очень старый - это Acer Aspire 1520, дисковод для компакт-дисков сломан, а дисковод гибких дисков отсутствует.
Я сделал его загрузочным USB, прежде чем я взглянул на него и обнаружил, что его BIOS не может загрузиться с USB. Единственное, что у меня есть, это консоль GRUB, но он просто хочет установить XP (на USB) и использовать ее только для фильмов.
Можно ли с помощью консоли GRUB получить доступ к USB и начать установку Windows? Это сложный заказ, но я думаю, что это может быть способ или попытка установки через локальную сеть, что, я не думаю, будет достижимо.
6 ответов
Вот краткий пример команд grub, которые могут просто работать, пояснения и предостережения ниже.
grub2
Скорее всего для установки после 2010 года.
set root=(hd1,1)
chainloader +1
boot
grub
Скорее всего, для установки до 2005 года.
root (hd1,0)
chainloader +1
boot
На период 2005-2010 гг. Ваше предположение такое же, как и мое, но если вы используете команду для неправильной версии, вы получите только безопасную синтаксическую ошибку в первой команде.
Выбор правильного корня
При запуске grub проверит ваши устройства и назначит им номера. Всем устройствам, которые разбиты на разделы (жесткие диски и флэш-накопители), также будут назначены номера. Формат (<deviceName>,<partitionIndex>)
, В grub2
изменились индексы разделов, поэтому приведенные выше два примера имеют одинаковый эффект, несмотря на то, что они используют разные корни
Ваше первое устройство (hd0
) - это устройство, с которого загружается устройство. После этого вы обычно можете предполагать, что все внутренние устройства будут предшествовать вашим внешним устройствам. Скорее всего, они будут в форме hd
и номер.
После запятой указывается раздел раздела. Жесткие диски и флэш-накопители почти всегда будут разбиты на разделы, поэтому вы должны выбрать правильный (и, скорее всего, только) раздел. Компакт-диски обычно не разбиты на разделы.
Дополнительная документация: http://www.gnu.org/software/grub/manual/html_node/Device-syntax.html
При выборе корневого раздела вы можете использовать клавишу Tab для поиска имен устройств и индексов разделов. Просто откройте скобки и начните нажимать Tab, чтобы увидеть список.
chainloader +1
это может не сработать, если BIOS не умеет загружаться с USB-накопителя (поэтому я все равно хотел использовать Grub).
В этом случае есть некоторая глубокая магия на https://help.ubuntu.com/community/Grub2/ISOBoot которая работает, по крайней мере, для Ubuntu. Ключевым моментом является удаление с помощью команды grub, которая идентифицирует vmlinuz
файл, передавая iso-scan/filename
аргумент. Каким-то образом это помогает понять, что вся загрузочная файловая система застряла в файле ISO. Я не знаю, как, черт возьми, это работает, но это так. Это (приблизительно) команды Grub 2, которые я использовал:
loopback loop (fd0,msdos1)/path/to/iso/file
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/path/to/iso/file noprompt noeject
initrd (loop)/casper/initrd.lz
boot
/path/to/iso/file
должен быть путь к файлу ISO на USB-ключе. (fd0,msdos1)
определяет USB-ключ. Дополнение табуляции очень полезно для loopback
линии, а не полезно для аргументов vmlinuz
,
Чтобы уточнить комментарий new123456:
Устройство USB должно быть определено как устройство хранения данных и рассматриваться как жесткий диск. Итак, в grub, типа root (hd
(пока не нажимайте Enter), а затем нажмите один или два раза на вкладку, чтобы увидеть, что видит Grub. Устройство USB, если оно распознано, вероятно будет hd1. Не указывайте номер раздела; просто добавьте закрывающую скобку. Так что линия будет root (hd1)
, Затем после этого введите следующее:
chainloader +1
boot
Если это не сработает, измените root (hd1)
в root (hd1,0)
и попробуйте еще раз.
Если по какой-то причине Grub не видит USB-накопитель, попробуйте подключить USB-CDROM и загрузиться с него.
Я собирался оставить это как комментарий к сообщению @Ekevoo или @Jonathan, но мне не разрешено это делать, поэтому вот мой вариант использования + решение для всех, кто также может столкнуться с этим:
На USB-накопителе находился установочный компакт-диск GPart Live, но мой BIOS по какой-то причине не загружался с него, несмотря на то, что раньше он работал (в предыдущий раз, когда он работал, я устанавливал компакт-диск через Windows, на этот раз я сделал это через Ubuntu). В Grub я выполнил следующие команды, и это сработало
set root=(hd0)
Для разных устройств это может быть по-разному, я не уверен, что это вообще необходимо.
Потом я побежал
chainloader (hd0)/efi/boot/grubx64.efi
boot
Путь к загрузчику, вероятно, будет другим для других ОС, но там должен быть аналогичный файл. Перемещайтесь по вкладке и найдите его или воспользуйтесь
И этого было достаточно, чтобы все заработало.
Это не будет очень полезно в случае вашего друга (разве что есть способ, которым я не знаю, в первую очередь, чтобы получить устройство на устройстве - может быть, USB-CD или USB-дисковод гибких дисков?), Но Это потрясающее маленькое приложение, которое помогло мне установить несколько старых машин для загрузки с USB, когда их биография не позволяла этого.
Вы не можете загрузиться с usb в grub, если биос сам этого не разрешает. Однажды мне пришлось установить раздел восстановления на жесткий диск, содержащий содержимое установочного диска win7, установить grub, а затем использовать его для загрузки установочного раздела win7, чтобы установить его на оставшуюся часть жесткого диска.