Làm thế nào để làm cho grub hoạt động trở lại sau khi gán lại ổ đĩa?


7

Cấu hình của tôi: opensuse 11.4, phân vùng khởi động tại Pendrive và ổ cứng với các phân vùng sda1, sda2, sdb1.

Hôm nay tôi đã thay đổi khung gầm cho máy tính của mình và do nhầm lẫn, tôi đã gắn ổ đĩa thứ hai vào SATA 3 thay vì SATA 2. Vì vậy, ổ đĩa thứ hai không được gắn đúng. Tôi tắt máy tính, gắn nó một cách chính xác và sau đó vấn đề của tôi bắt đầu.

Bây giờ, tôi không thể khởi động hệ thống cả. Trước đây tôi đã thiết lập khả năng khởi động từ ổ đĩa di động trong BIOS (Pendrive), nhưng bây giờ có vẻ như máy tính (BIOS) không nhận ra ổ đĩa là ổ đĩa di động, mà là ổ cứng thông thường. Vì vậy, nó sẽ không khởi động cho "ổ đĩa di động". Khi tôi thay đổi thứ tự khởi động và chọn khởi động từ ổ đĩa cứng (và tôi đặt ổ cứng đầu tiên là ổ đĩa cứng) hoặc nếu tôi đặt trực tiếp từ menu khởi động để khởi động từ ổ đĩa, tôi gặp lỗi trong GRUB ở chế độ cứu hộ.

Tôi đoán là vì một số lý do, Pendrive không còn được công nhận là phương tiện lưu động, nhưng đĩa cứng, ổ cứng được ánh xạ khác nhau và tôi nên sửa lỗi ánh xạ.

Tôi có thể khởi động trình cài đặt CD và mount Pendrive để xem nội dung của cấu hình grub, nhưng khi tôi ở chế độ cứu grub và tôi thực thi "ls" thì tôi nhận được

(hd0) (hd0, msddos1) (hd1) (hd1, msddos2) (hd1, msdos1) (hd2) (hd2, msddos1)

Nhưng tôi không thấy ánh xạ, vì vậy tôi không biết hd0 thực sự có nghĩa là gì. Tôi chỉ có thể nghi ngờ hd1 ở đây là sda, vì nó có 2 phân vùng (nếu hậu tố msdsos là dấu hiệu của phân vùng).

Làm thế nào tôi có thể làm cho grub hoạt động trở lại?

Câu trả lời:


7

Vấn đề có lẽ là do grub nhìn thấy các đĩa USB khi khởi động khác với một lần chạy từ hệ thống đang chạy. Đây là cách bạn có thể giải quyết nó:

Khi bạn khởi động (thông thường, từ hd) và grub xuất hiện, hãy mở bảng điều khiển grub (thông thường bạn làm điều đó chỉ bằng cách nhấn c). Tại dấu nhắc grub, bắt đầu nhập root (hd:

grub> root (hd

sau đó nhấn Tabvà bạn sẽ thấy các đĩa hoàn thành có thể. Chọn đĩa và phân vùng nơi của bạn /boot. Nếu bạn không chắc chắn, thì với mỗi người bạn nghi ngờ, hãy làm như sau:

  • (hoàn thành rootlệnh để chọn phân vùng và nhấn Enter)
  • gõ vào cat /và nhấn Tab. Bạn sẽ thấy danh sách các tập tin được tìm thấy trên phân vùng.
  • Xem danh sách các tệp, quyết định xem đó có phải là phân vùng của bạn chứa kernel (bên dưới /boot/) không.
  • Nếu không, nhấn Escvà bắt đầu lại.

Khi bạn đã tìm thấy cách phân vùng được biết đến grub, bạn có thể cài đặt lại bộ tải khởi động (sử dụng setuplệnh) và trỏ đến phân vùng / tệp chính xác trong /boot/grub/menu.lst hoặc /boot/grub/grub.conf (bạn phải xác định, phiên bản nào của bạn sử dụng hoặc chỉ làm cho chúng chứa giống nhau).


[Chỉnh sửa]: Mỗi mẫu Macias yêu cầu đặc biệt, dưới đây là chi tiết khác về cách sửa MBR bằng grub:

Một cách để cài đặt lại MBR trên một ổ đĩa sử dụng grubsetuplệnh tôi nêu ở trên. Đây là một lệnh được biết đến với các phiên bản grub 0.9X ( xem Tài liệu ). Nhưng dường như bạn đang sử dụng nhánh grub mới hơn (1.9X) và các lệnh cho nó là khác nhau. Hãy xem tài liệu tương ứng - trong phiên bản này, bạn có thể cài đặt grub vào MBR bằng grub-installtiện ích này và tôi không chắc có cách nào khác không - từ lời nhắc "giải cứu" grub, như với grub-0.97. Có lẽ không và có lẽ đó là một trong những lý do tại sao nhiều bản phân phối thích phiên bản "di sản".


Cảm ơn bạn đã trả lời nhưng đây là giải pháp lý thuyết, tức là "Khi bạn khởi động (bình thường, từ hd)". Tôi không khởi động từ ổ cứng, tôi khởi động từ ổ đĩa cứng, không có ổ cứng trên ổ cứng. Lệnh "root" không hoạt động với grub của tôi hoặc với grub trong chế độ cứu hộ, dù sao, khi tôi cố gắng thực thi nó, tôi nhận được "lệnh không xác định".
greenoldman

Ok, tôi đã không nhận ra rằng bạn đã cài đặt grub trên usb, nhưng nó không thay đổi gì. Điều gì làm thay đổi một cái gì đó là phiên bản của grub bạn có. Ngoài ra, câu hỏi của bạn đã trở nên khó hiểu với tất cả các chỉnh sửa - xin vui lòng, tự đọc nó và dọn dẹp, để lại mô tả về vấn đề hiện tại là gì .
rozcietrzewiacz

Chắc chắn đó là Grub1, tôi đóng câu hỏi này ngay bây giờ, bởi vì bây giờ vấn đề đã chuyển sang một nơi khác và có lẽ chỉ tôi mới có thể giải quyết hoàn toàn vấn đề này ngay từ đầu.
greenoldman

Chà, có lẽ đó là một ý tưởng hay - sau đó bạn có thể bắt đầu một câu hỏi mới khi tình hình trở nên rõ ràng hơn. Từ câu trả lời của tôi, chỉ cần ghi nhớ thực tế rằng grub có thể liệt kê các đĩa USB khác nhau khi khởi động sau đó khi bắt đầu từ một hệ thống đang chạy . Hi vọng điêu nay co ich!
rozcietrzewiacz

Tôi đã đăng câu hỏi về bước cuối cùng của giải pháp (giải pháp của tôi, nó sẽ phức tạp) unix.stackexchange.com/questions/18237/ trộm Tôi đã nhận thấy rằng grub đang liệt kê các phân vùng khác nhau có (hd0,1) trên ổ đĩa gốc và (hd0,0) trên ổ đĩa thay thế.
greenoldman

2

Các tập tin menu.lstchỉ được sử dụng bởi di sản grub. Bạn dường như đang sử dụng grub2, sử dụng grub.cfgthay thế. Grub2 cũng thích làm việc mà không có a device.map, vì vậy bạn cũng có thể xóa nó, sau đó cài đặt lại grub.


Cảm ơn bạn đã trả lời, tôi không có grub.cfg và tôi nghi ngờ đó là Grub2 (bạn đã nói như thế nào?). Cài đặt lại grub yêu cầu hệ thống chạy, phải không? Tôi không thể chạy hệ thống, vì grub không hoạt động, nếu tôi có thể làm cho nó hoạt động, thì (theo định nghĩa) sẽ không cần phải cài đặt lại (vì nó sẽ hoạt động).
greenoldman

@macias nó trông giống như grub2 vì di sản grub liệt kê các phân vùng bắt đầu từ 0, vì vậy phân vùng đầu tiên mà nó xác định là (hd0,0). Cài đặt lại grub yêu cầu một hệ thống đang chạy, bạn có thể nhận được bằng cách khởi động từ một thứ khác ngoài HD với lưới bị hỏng.
psusi

1

Giải pháp cho vấn đề này là gấp đôi. Một điều là sửa lỗi grub khác là sửa MBR.

Cái đầu tiên khá đơn giản (?). Chạy máy tính của bạn với cài đặt CD (openSUSE!), Chọn "chế độ cứu hộ", khi bạn nhận được chế độ cứu hộ, hãy đăng nhập bằng root (không cần mật khẩu), cắm vào ổ đĩa, gắn nó (ví dụ ~ / Pendrive), đi đến ~ / Pendrive / grub và chỉnh sửa hai tệp: device.map và menu.lst. Trong cả hai tệp, bạn phải tìm các mục (hdX) trong đó X là (thường) 0 và 1. Trong trường hợp của tôi, tôi chỉ cần hoán đổi tất cả 0 thành 1 và tất cả từ 1 đến 0.

Tôi không biết cách khắc phục MBR một cách dễ dàng, nhưng tôi hy vọng Rozcietrzewiacz sẽ đưa ra giải pháp :-), chỉ trong trường hợp, cách khó là lấy một ổ đĩa khác và một ổ cứng khác, rút ​​tất cả các ổ cứng thông thường và thực hiện Cài đặt "giả" bắt chước bản gốc. Nếu mọi thứ đều hoạt động tốt và hệ thống "giả" mới của bạn đã khởi động, đã đến lúc sao chép các lĩnh vực MBR từ hoạt động mạnh mẽ sang không hoạt động (xem: Làm thế nào để xây dựng lại hoàn toàn phân vùng khởi động với grub? ). Bạn làm như được giải thích dưới đây:

"Ở đây, tôi giả sử / dev / sdb là ổ đĩa OLD của bạn và / dev / sdc là cái MỚI - đảm bảo thay thế những cái đó bằng tên thiết bị phù hợp, nếu không bạn thậm chí có thể làm hỏng toàn bộ hệ thống của mình!

dd if=/dev/sdc bs=512 count=1 of=/dev/sdb

"( Giải pháp của Rozcietrzewiacz )

Hai bước đó là tất cả những gì bạn cần để hệ thống của bạn hoạt động trở lại sau khi gán lại đĩa.

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.