Khởi động từ USB bằng GRUB


48

Máy tính xách tay của bạn tôi bị tai nạn xe hơi (anh ấy vẫn ổn!). Tuy nhiên, máy tính xách tay này rất cũ, Acer Aspire 1520, ổ đĩa CD-rom đã bị hỏng và không có ổ đĩa mềm.

Tôi đã làm cho anh ấy một chiếc giày USB trước khi tôi xem nó và thấy rằng BIOS của anh ấy không thể khởi động từ USB. Điều duy nhất tôi có là một bảng điều khiển GRUB nhưng anh ấy rất muốn chỉ cài đặt XP (trên USB) và sử dụng nó chỉ cho Phim.

Có thể sử dụng bảng điều khiển GRUB để có quyền truy cập vào USB và bắt đầu cài đặt windows không? Đó là một trật tự cao nhưng tôi nghĩ rằng đây có thể là cách hoặc cố gắng cài đặt qua mạng LAN mà tôi không nghĩ sẽ có thể đạt được.


1
Tôi sẽ cố gắng để có một ổ đĩa USB cd / dvd và làm việc để máy tính khởi động vào đó.
jmreicha

1
Bài đăng này hiển thị các lệnh thủ công cần thiết - bạn chỉ cần tìm ra số ổ đĩa, có thể được thực hiện khi hoàn thành tab GRUB.
new123456

Câu trả lời:


39

Dưới đây là một ví dụ nhanh về các lệnh grub có thể chỉ hoạt động, giải thích và cảnh báo dưới đây.

grub2

Nhiều khả năng cho các cài đặt sau năm 2010.

set root=(hd1,1)
chainloader +1
boot

grub

Nhiều khả năng cho các cài đặt trước năm 2005.

root (hd1,0)
chainloader +1
boot

Trong giai đoạn 2005 - 2010, dự đoán của bạn cũng tốt như tôi, nhưng nếu bạn sử dụng lệnh cho phiên bản sai, bạn chỉ nhận được một lỗi cú pháp vô hại trên lệnh đầu tiên.

Chọn đúng root

Khi khởi động, grub sẽ thăm dò các thiết bị của bạn và gán số cho chúng. Tất cả các thiết bị được phân vùng (đĩa cứng và ổ đĩa flash) cũng sẽ có số được gán. Các định dạng là (<deviceName>,<partitionIndex>). Trong grub2, các chỉ mục phân vùng đã thay đổi, vì vậy hai ví dụ trên có cùng tác dụng mặc dù tìm cách sử dụng các gốc khác nhau.

Thiết bị đầu tiên của bạn ( hd0) là thiết bị nào được tải từ. Sau đó, bạn thường có thể cho rằng tất cả các thiết bị bên trong sẽ xuất hiện trước các thiết bị bên ngoài của bạn. Họ rất có thể sẽ ở dạng hdvà một số.

Sau dấu phẩy là chỉ mục phân vùng. Đĩa cứng và ổ ngón tay cái hầu như sẽ luôn được phân vùng, vì vậy bạn phải chọn đúng phân vùng (và rất có thể là duy nhất). CD-ROM thường không được phân vùng.

Tài liệu khác: http://www.gnu.org/software/grub/manual/html_node/Device-syntax.html

Khi chọn phân vùng gốc, bạn có thể sử dụng phím Tab để thăm dò tên thiết bị và chỉ mục phân vùng. Chỉ cần mở ngoặc đơn và bắt đầu nhấn Tab để xem danh sách.


5
Cũng có thể sử dụng set root=(hd1)(vv) để khởi động từ toàn bộ thiết bị, nếu nó không được phân vùng, ví dụ như ổ USB có thể khởi động.
trắng_gecko

6
Chỉ cần thêm, bạn có thể làm lsđể xem danh sách các thiết bị được kết nối.
AntouanK

2
Tôi biết ngăn xếp trao đổi ngăn cản cảm ơn ý kiến ​​của bạn, nhưng câu trả lời này thực sự xứng đáng một. Bạn đã tiết kiệm cho tôi một lượng lớn thời gian.
John Militer

không thể tìm thấy lệnhroot
Người hâm mộ số một của Bjork

13

Để giải thích về nhận xét của new123456:

Thiết bị USB phải được phát hiện như một thiết bị lưu trữ dung lượng lớn và được xử lý giống như một ổ cứng. Vì vậy, trong grub, nhập root (hd(không nhấn Enter) và sau đó nhấn tab một hoặc hai lần để xem ổ cứng nào Grub có thể nhìn thấy. Thiết bị USB, nếu được công nhận, có thể sẽ là hd1. Đừng chỉ định số phân vùng; chỉ cần thêm dấu ngoặc đơn đóng. Vì vậy, dòng sẽ được root (hd1). Sau đó, gõ như sau:

chainloader +1
boot

Nếu đó không phải làm việc, thay đổi root (hd1)đến root (hd1,0)và thử lại lần nữa.

Nếu vì lý do nào đó Grub không thể thấy ổ USB, hãy thử cắm USB CDROM và khởi động nó.


7

Điều chainloader +1này có thể không hoạt động nếu BIOS không khởi động tốt từ khóa USB (đó là lý do tại sao tôi muốn sử dụng Grub anyways).

Trong trường hợp này, có một số phép thuật sâu sắc tại https://help.ubfox.com/community/Grub2/ISOBoot hoạt động, ít nhất là cho Ubuntu. Bit quan trọng là mucking với lệnh grub xác định vmlinuztệp, truyền iso-scan/filenameđối số. Bằng cách nào đó, điều đó giúp nó tìm ra rằng toàn bộ hệ thống tệp khởi động bị kẹt trong một tệp ISO. Tôi không biết làm thế nào nó hoạt động, nhưng nó làm. Đây là (khoảng) các lệnh Grub 2 tôi đã sử dụng:

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

Các /path/to/iso/filenên là đường dẫn đến tập tin ISO trên phím USB. Các (fd0,msdos1)xác định phím USB. Hoàn thành tab là siêu hữu ích trên loopbackdòng và không hữu ích cho các đối số vmlinuz.


Tôi nghĩ rằng tôi có ý định trả lời câu hỏi này để trả lời một câu hỏi khác. Tôi ước tôi biết cái nào!
Paul Stansifer

Trong trường hợp efi/ uefichế độ khởi động, các grub2lệnh này tạo ra lỗi : error: can't find command 'linux'. Thay đổi các lệnh thành linuxefiinitrdefi.
Samveen

Tôi thích khái niệm ở đây. Khởi động một ISO có trên ổ đĩa flash. Điều này sẽ biến một ổ đĩa flash thành một đĩa CD tự chọn. Trong ví dụ chức năng nhiều hơn, nơi bạn có thể khởi động CD, không phải Flash, bạn có thể ghi CD đã chọn trong số đó nếu có vấn đề khởi động từ USB, phải không?
BenPen

2

Điều này sẽ không hữu ích lắm trong trường hợp của bạn bè của bạn (trừ khi có cách mà tôi không biết để nhận được thiết bị trên thiết bị ngay từ đầu - có thể là ổ đĩa mềm usb cd-rom hoặc ổ đĩa mềm usb?), Nhưng đây là một ứng dụng nhỏ tuyệt vời, nó đã giúp tôi xử lý một số máy cũ để khởi động usbs khi bios của chúng không cho phép.

Quản lý khởi động Plop


0

Bạn không thể khởi động từ usb trong grub nếu bios không cho phép nó. Tôi đã từng phải thiết lập một loại phân vùng phục hồi trên một đĩa cứng chứa nội dung đĩa thiết lập win7, cài đặt grub và sau đó sử dụng nó để khởi động phân vùng thiết lập win7 để cài đặt nó vào phần còn lại của ổ cứng.


Bạn có thể sẽ phải sử dụng các lệnh "insmod usbms" và sau đó "insmod ehci" hoặc "insmod uhci" trước các lệnh được đề cập.
Claude Frantz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.