Загрузка с 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.