Загрузка с USB с помощью GRUB


48

Ноутбук моего друга попал в автомобильную аварию (он в порядке!). Однако ноутбук очень старый - это Acer Aspire 1520, дисковод для компакт-дисков сломан, а дисковод гибких дисков отсутствует.

Я сделал его загрузочным USB, прежде чем я взглянул на него и обнаружил, что его BIOS не может загрузиться с USB. Только , что у меня есть это GRUB консоль , но он стремится просто установить XP (на USB) и использовать его только для фильмов.

Можно ли с помощью консоли GRUB получить доступ к USB и начать установку Windows? Это сложный заказ, но я думаю, что это может быть способ или попытка установки через локальную сеть, что, я не думаю, будет достижимо.


1
Я попытался бы получить привод USB cd / dvd и работать над тем, чтобы заставить компьютер загружаться к этому.
— jmreicha

1
В этом посте показаны необходимые ручные команды - вам просто нужно узнать номер диска, что можно сделать, заполнив вкладку GRUB.
— new123456

Ответы:


39

Вот краткий пример команд 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) - это устройство, из которого только что загружен grub. После этого вы обычно можете предполагать, что все внутренние устройства будут предшествовать вашим внешним устройствам. Скорее всего, они будут в виде hdчисла.

После запятой указывается раздел раздела. Жесткие диски и флэш-накопители почти всегда будут разбиты на разделы, поэтому вы должны выбрать правильный (и, скорее всего, только) раздел. Компакт-диски обычно не разбиты на разделы.

Дополнительная документация: http://www.gnu.org/software/grub/manual/html_node/Device-syntax.html

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


5
Также можно использовать set root=(hd1)(и т. Д.) Для загрузки со всего устройства, если оно не разбито на разделы, например, с загрузочного USB-накопителя.
— white_gecko

6
Просто чтобы добавить, вы можете сделать, lsчтобы увидеть список подключенных устройств.
— AntouanK

2
Я знаю, что обмен стеками препятствует поблагодарить вас за комментарии, но этот ответ действительно заслуживает одного. Вы сэкономили мне огромное количество времени.
— Джон

не могу найти командуroot
— поклонник Бьоркса номер один

13

Чтобы уточнить комментарий new123456:

Устройство USB должно быть определено как устройство хранения данных и рассматриваться как жесткий диск. Итак, в grub введите root (hd(пока не нажимайте Enter) и затем нажмите один или два раза на вкладку, чтобы увидеть, что видит Grub на жестких дисках. Устройство USB, если оно распознано, вероятно будет hd1. Не указывайте номер раздела; просто добавьте закрывающую скобку. Так что линия будет root (hd1). Затем после этого введите следующее:

chainloader +1
boot

Если это не сработает, измените root (hd1)на root (hd1,0)и попробуйте снова.

Если по какой-то причине Grub не видит USB-накопитель, попробуйте подключить USB-CDROM и загрузиться с него.


7

Это 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.


Я думаю, что хотел ответить на этот вопрос в ответ на другой вопрос. Я хотел бы знать, какой из них!
— Пол Стансифер

В случае efi/ uefiрежимы загрузки, эти grub2команды генерируют ошибку: error: can't find command 'linux'. Измените команды на linuxefiи initrdefi.
— Самвин

Мне нравится концепция здесь. Загрузитесь с ISO, который содержится на флешке. Это превратит флешку в буфет загрузочного CD. В более функциональном примере, где вы можете загружаться с CD, а не с Flash, вы можете записать CD, который был выбран среди них, если возникла проблема с загрузкой с USB, не так ли?
— BenPen

2

Это не будет очень полезно в случае вашего друга (разве что есть способ, которым я не подозреваю, чтобы сначала получить устройство на устройстве - может быть, USB-CD-ROM или USB-дисковод гибких дисков?), Но Это потрясающее маленькое приложение, которое помогло мне установить несколько старых машин для загрузки с USB, когда их биография не позволяла этого.

Plop Boot Manager


0

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


Возможно, вам придется использовать команды «insmod usbms», а затем «insmod ehci» или «insmod uhci» перед упомянутыми командами.
— Клод Франц
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.