Làm thế nào để bạn chạy update-grub?


25

Tôi đã đi vào Live CD và kích hoạt Terminal. Sau đó, tôi gõ gksu nautilusđể có quyền truy cập tạm thời vào thư mục gốc của tôi. Khi cửa sổ Manager mở, tôi bấm vào Hệ thống tệp và điều hướng đến /etc/default/grubthư mục. Sau đó, tôi nhấp đúp chuột vào tệp Grub để thay đổi TIMEOUTTIMEOUT_QUIET.

Tôi đã lưu tệp sau khi tôi thực hiện các thay đổi. Sau đó, tôi trở lại chế độ thiết bị đầu cuối và gõ:

gksu update-grub

Thông báo lỗi tôi nhận được là:

Không thể tìm thấy thiết bị cho / (được / dev gắn?)

Tôi không chắc phải làm gì vào thời điểm này. Làm thế nào tôi có thể chạy update-grubđể cập nhật các thay đổi? Cảm ơn trước sự giúp đỡ của bạn. Xin hãy thật chi tiết và cụ thể với phản hồi của bạn vì tôi hoàn toàn mới với môi trường này.

Câu trả lời:


24

Giai đoạn 1 - Lưu ý: không sử dụng CD Live.

  • Trong Ubuntu của bạn mở một thiết bị đầu cuối (nhấn Ctrl+ Alt+ Tcùng một lúc)
  • Loại gedit admin:///etc/default/grub
    Điều này sẽ chạy gedit trình soạn thảo văn bản , nếu bạn đang sử dụng một cái khác chỉ cần gõ tên của nó thay vì gedit.
  • Thực hiện các thay đổi bạn muốn thực hiện và lưu chúng.
  • Đóng gedit.
    Thiết bị đầu cuối của bạn vẫn nên được mở.
  • Trong loại thiết bị đầu cuối sudo update-grub, chờ cập nhật kết thúc.
  • Khởi động lại máy tính của bạn.

Giai đoạn 2 - Sau khi bạn đã đăng nhập vào hệ thống của mình

  • Mở một thiết bị đầu cuối một lần nữa ( Ctrl+ Alt+ T).
  • Nhập vào thiết bị đầu cuối gksu gedit /etc/default/grub
  • Để xem menu grub tại thời điểm khởi động, hãy
    nhận xét hoặc xóa dòng sau:GRUB_HIDDEN_TIMEOUT=0
    • Để bình luận, thêm #vào đầu dòng này, kết quả sẽ là#GRUB_HIDDEN_TIMEOUT=0
  • Lưu các tập tin.
  • Một lần nữa trong thiết bị đầu cuối chạy sudo update-grub.

Nếu thấy menu grub khi khởi động là điều duy nhất bạn muốn, bạn nên hoàn tác các thay đổi trước đó đối với tệp.


Cám ơn phản hồi của bạn. Vấn đề ban đầu mà tôi đang cố gắng giải quyết là tôi không thể mở menu grub. Vì vậy, tôi nghĩ rằng tôi phải sử dụng Live CD để truy cập tệp cấu hình grub và thực hiện các thay đổi của mình. Tôi đọc rằng nếu tôi thay đổi TIMEOUT thành 10 và TIMEOUT_QUIT thành true, thì tôi sẽ có thể truy cập menu Grub. Khi tôi khởi động hệ thống, tôi giữ phím shift. Tôi thấy các từ GRUB MENU bật lên chỉ trong một tích tắc. Vì vậy, không thể sử dụng Live CD để truy cập Terminal, tôi không biết cách sửa đổi tệp cấu hình GRUB. Bất kỳ đề xuất về làm thế nào để thực hiện điều này?
newbietoubu

Tôi nghĩ rằng jeroen trực tiếp trả lời này. Có thể bạn đang cố gắng sửa đổi menu grub trong khi ở grub ???
pfeiffep

2
Xem ansewer cải tiến của tôi.
jeroen

6

Bạn đang nhận được thông báo đó vì Live CD không gắn hệ thống tệp có thể ghi. Nó chỉ được dùng để dùng thử Ubuntu hoặc cứu một hệ thống bị hỏng. Việc thực thi sudo update-grubchỉ hoạt động trên một phiên bản đã cài đặt của Ubuntu, nơi bạn có quyền truy cập ghi vào các tệp GRUB nằm bên dưới (và trên Live CD, bạn thì không).


4
Thông tin tốt, nhưng OP cũng muốn biết làm thế nào anh ấy có thể thực hiện các thay đổi anh ấy muốn /etc/default/grubvà sau đó update-grub.
chaskes

2

Bạn có thể thực hiện cập nhật từ đĩa CD trực tiếp trên Ubuntu Distro đã cài đặt (mặc dù tôi cho rằng điều này hoạt động với bất kỳ bản phân phối linux [dựa trên debian?]. Nó là "bắt buộc" (có thể có các phương pháp khác nhưng tôi biết cách này, tôi không Tôi hoàn toàn không quan tâm đến chúng) nếu bạn sao chép ổ đĩa của mình và đã cài đặt cái mới trong máy tính. Tôi đề cập đến việc nhân bản ở đây một cách rộng rãi, bởi vì theo một nghĩa nào đó, bước cập nhật là một tập hợp con của nó và các cách tiếp cận cũng vậy. Cơ sở trong một phiên trực tiếp. Ngoài ra phương pháp này được phát hiện thông qua tìm kiếm trong bối cảnh nhân bản. Bạn có thể lấy những gì bạn cần từ nó nếu bạn không nhân bản, và quy trình của bạn sẽ được đơn giản hóa.

Tôi nên đủ điều kiện này ở đây; quan trọng đối với nhân bản, không quan trọng đối với việc chỉ cập nhật-grub: Tôi chỉ thực hiện điều này trên các hệ thống BIOS. Tôi chưa thử nó trên hệ thống UEFI. Hệ thống UEFI yêu cầu phân vùng FAT để tải khởi động và tôi chưa kiểm tra xem phân vùng này có nên đi cùng trong các bước sao chép không. Tôi hy vọng rằng nó sẽ ảnh hưởng đến việc gắn [ràng buộc-] cần thiết để tổng hợp môi trường grub gốc trong phiên trực tiếp ...

Đây là chi tiết trên trang này: http://frugaltech.happystoic.com/ssdlinux . Tôi đã sử dụng phương pháp này nhiều lần và bạn có thể trao đổi ổ đĩa cứng xung quanh ad-infinitum bằng cách sử dụng nó. Trao đổi ổ đĩa cứng vật lý trở nên tầm thường theo cách này, thật hấp dẫn để biến nó thành sở thích của riêng mình và / hoặc cố gắng sửa chữa các máy tính bị hỏng của người khác.

Sau đây có thể là một cách diễn giải hữu ích về những gì bạn sẽ tìm thấy ở đó:

  1. Ctrl+ Alt+ Tcho thiết bị đầu cuối Bash và nhập shell superuser ( sudo -s) trong phiên trực tiếp.

  2. gắn kết phân vùng ổ đĩa cài đặt đầy đủ (đó là [hoặc sẽ trở thành] thư mục gốc hệ thống tập tin Linux cố định của bạn).

    2a. Nếu cài đặt đầy đủ đã tồn tại trên ổ cứng của bạn, hãy bỏ qua (2). NẾU bạn đang CLONING: [dựa trên giả định rằng bạn không thực hiện cài đặt mới, vì đây là hoàn toàn tự động trong trường hợp đó] nếu cài đặt đầy đủ của bạn chưa tồn tại trên phân vùng này, bây giờ là lúc đơn giản

    rsync -a /existing/linux/filesystem/live-mount-point/ /new/linux/filesystem/live-mount-point/ 
    

    [các điểm gắn kết này hoàn toàn liên quan đến môi trường phiên trực tiếp - trong Ubuntu chúng thường có dạng "/ media / ub Ubuntu / ???"] trên ổ đĩa mới [phân vùng].

    2b. Cài đặt đầy đủ hệ điều hành khác có thể được xử lý theo cách tương tự ở đây. Tôi thường đã sử dụng tài nguyên dựa trên Windows để sao chép hàng loạt phân vùng windows vào các ổ đĩa mới nhưng tôi cũng đã sử dụng rsync và nó hoạt động cho Win XP (giả sử bạn có hỗ trợ cho định dạng phân vùng chính xác, chẳng hạn như ntfs; Tôi nghĩ rằng phương tiện truyền thông phiên trực tiếp thường bao gồm hỗ trợ định dạng thay thế). Chỉ cần cẩn thận về chính tả của bạn và sử dụng dấu /trong thư mục nguồn nếu bạn đã đặt tên đầy đủ cho mục tiêu.

  3. bind-mount sống /dev, /proc/systhư mục vào thư mục tương ứng của họ về bạn [gắn] vĩnh viễn phân vùng cài đặt đầy đủ bạn đang tìm cách sử dụng. Kịch bản chi tiết trong liên kết ở trên thực hiện điều này rất thanh lịch với câu lệnh "for". Ngoài ra, tập lệnh được cung cấp không cần phải được thực thi như một tập lệnh. Nó có thể được nhập từ dấu nhắc bash, từng dòng một.

  4. chrootđến phân vùng cài đặt đầy đủ vĩnh viễn. Sau khi thực hiện (3) và (4), hệ thống hiện "hầu như cư trú" trong "hệ thống tệp cuối cùng" của bạn và GRUB sẽ hoạt động đồng nhất. Nếu không có các bước này, grub sẽ cho rằng hệ thống của bạn chỉ đơn giản là một phiên trực tiếp và tôi không biết cụ thể nó làm gì trong trường hợp đó nhưng đủ để nó không phải là kết quả mong muốn, như đã được đề cập ở trên trong chủ đề này.

  5. chạy grub-install trên /dev/sdX(ổ đĩa, không phải điểm gắn kết) tương ứng với cài đặt cố định (hoặc bất kỳ ổ đĩa nào sẽ lưu trữ GRUB nếu hệ thống nhiều ổ đĩa, đa khởi động]. Tính linh hoạt ở đây có thể phụ thuộc vào cổ điển và BIOS của bạn. Theo như tôi biết thì việc chạy "grub-install" không có hại gì nếu không cần thiết, vì vậy tôi luôn làm điều đó nếu tôi đang sử dụng phương thức phiên trực tiếp này.

  6. chạy update-grub và nó sẽ hoạt động như thể hệ thống đang chạy được lồng trong phân vùng cố định trong tương lai, khám phá tất cả các nhân và hệ điều hành có thể khởi động mà bạn có thể có sẵn.

  7. Nếu bạn không thay đổi vật lý ổ cứng, hãy bỏ qua (5). Mặt khác, chỉnh sửa hoặc xác minh /new/linux/filesystem/live-mount-point/etc/fstabtệp của bạn để đảm bảo cấu trúc hệ thống tệp chính xác cho môi trường [mới] của bạn. Nếu bạn ở cấp độ này, bạn chắc chắn đã biết về việc sử dụng blkid để thu hoạch UUID cho fstab.

    IMHO: bạn nên luôn luôn sử dụng UUID ở dạng fstab (không phải dạng "dev / sdXY") vì trong phạm vi của chính nó, nó miễn nhiễm với cấu hình lại ổ cứng vật lý, ngoài mức độ mà điều này yêu cầu cập nhật theo nghĩa đen của các giá trị UUID một số điểm trong tương lai bạn cài đặt thêm ổ cứng cho thư mục / home của bạn, v.v.). Nó chỉ đơn giản là cách tiếp cận cơ bản nhất, mạnh mẽ và bất biến.

  8. thoát khỏi chroot, thoát supershell, thoát bash, tắt và khởi động hệ thống mà không có phương tiện truyền thông trực tiếp. Bây giờ bạn nên là nơi bạn dự định.

    LƯU Ý quan trọng: Đối số cho mountchrootlà các thư mục (nói chung, NHIỀU ĐIỂM như /mnt/??hoặc /media/??) tương ứng với phiên trực tiếp. Trong hầu hết các trường hợp nếu không phải tất cả các trường hợp cài đặt đầy đủ nằm trong phân vùng riêng của nó, vì vậy các thuật ngữ "thư mục" và "điểm gắn kết" về cơ bản là đồng nghĩa ở đây. Đối số cho cài đặt grub là DRIVE VẬT LÝ (nói chung /dev/sdX, trong đó "X" là một chữ cái tương ứng với ổ đĩa trong hệ thống của bạn, sda, sdb, v.v. và nó không nên phụ thuộc vào phiên).

Bây giờ bạn nên được thực hiện. Tôi đã đồng thời nhân bản Windows (XP và 7) theo nhiều hoán vị khác nhau cùng với Ubuntu và Puppy bằng phương pháp này và nó đã không làm tôi thất bại. Tôi nghĩ rằng bạn có thể sử dụng một phương tiện trực tiếp của một bản phân phối khác (tuy nhiên tôi chỉ sử dụng các hương vị Ubuntu và Mint khác nhau cho điều này) miễn là chúng cung cấp phiên bản GRUB bạn định sử dụng. Bạn có thể di chuyển các phân vùng xung quanh, trao đổi ổ đĩa, kết hợp các cài đặt hệ điều hành khác và sao chép hoặc từ SSD bằng cách này. Tôi chỉ có thể nói chuyện với nó làm việc trong cùng một máy. Tôi cho rằng các trình điều khiển có thể được yêu cầu cho một máy khác có thể đã bị bỏ qua trong quá trình cài đặt đầy đủ trước đó của bạn. Nguyên tắc cơ bản của tôi là chuyển đổi ổ đĩa trong máy tính yêu cầu phương pháp này, nhưng chuyển đổi máy tính bằng ổ đĩa yêu cầu cài đặt [re-] đầy đủ.

Có lẽ ai đó có thể gỡ lỗi này ..?


1
Chào mừng bạn đến hỏi Ubuntu! :-) Câu trả lời đầu tiên tuyệt vời ! +1
Fabby
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.