Làm cách nào để buộc grub2 phát hiện cài đặt linux linux của tôi?


8

Tôi có một thiết lập không phổ biến. Tôi đã cài đặt Ubuntu trên một bản sao lưubản sao lưu từ bản sao trực tiếp của bản cài đặt Arch Linux cũ hơn vào bản thứ hai. Bằng cách sao chép trực tiếp, ý tôi là ban đầu tôi đã lấy nội dung của toàn bộ phân vùng và bây giờ tôi đã trích xuất những nội dung đó sang phân vùng khác. Vì thế:

1 - Ubuntu, với GRUB2

2 - Arch từ bản sao lưu

Ubuntu chạy và khởi động tốt. Sau khi giải nén Arch thành một phân vùng, tôi đã thay đổi fstab để phản ánh phân vùng mới của nó. Nhưng bây giờ tôi đang bị kẹt khi cố gắng để Arch khởi động. Tôi đã thử chạy update-grub trong Ubuntu nhưng nó không nhận cài đặt Arch. Vì vậy, làm thế nào tôi có thể làm cho điều này để làm việc?


Grub không sử dụng fstab
matzahboy

Câu trả lời:


9

Tôi gặp vấn đề tương tự sau khi cài đặt Fedora 17. Ubuntu sẽ không nhận nó. Sau khi không tìm thấy câu trả lời nào trên mạng, tôi tự hỏi liệu có phải vì grub không thể 'nhìn thấy' bản cài đặt Fedora. Vì vậy, tôi đã gắn Fedora / phân vùng trong Ubuntu và chạy update-grub và nó tìm thấy cài đặt Fedora và thêm nó vào menu khởi động. Tôi sử dụng kỹ thuật tương tự với Archlinux


3

Bạn đã thử theo dõi bài viết ArchWiki trên Grub2 chưa? Bạn có thể muốn cài đặt gói có tên os-prober trên hệ thống của mình trước khi chạy grub-mkconfig. Điều này sẽ tạo ra tệp grub.cfg chính xác cho hệ thống của bạn.

Hãy cho tôi biết nếu bạn cần thêm trợ giúp.


2

Hiện tại bạn đang sử dụng grub từ cài đặt Ubuntu của mình, nếu bạn muốn khởi động Arch từ nó, bạn phải thêm một mục tùy chỉnh cấu hình Ubuntu để mỗi lần gói thực thi cập nhật-grub, mục nhập mới của bạn sẽ không bị xóa.

Mục nhập mới sẽ trông khá giống với những gì bạn đã khởi động Ubuntu, nhưng tham khảo các phân vùng của Arch và sử dụng các tham số kernel của Arch (có thể bạn có thể sử dụng trang wiki của Arch trên grub2).

Để biết thêm thông tin, hãy xem tại đây: https://help.ubfox.com/community/Grub2/CustomMenus


0

Tôi đã tìm đến Google bởi vì tôi gặp vấn đề với cài đặt Debian Buster từ Deboostrap , một hệ thống rất tối giản để xây dựng Debian từ đầu. Tôi muốn có sẵn Debian Stretch cũ của mình, vì vậy tôi cần khởi động kép. Với Debootstrap không có gì được cài đặt sẵn nên tôi cần tất cả ba câu trả lời khác từ @sever (hệ thống tập tin gốc không xác định), @darnir (cài đặt os-prober) và @tripledes (sử dụng cấu hình tùy chỉnh trong /etc/grub.d/40_custom). Đây là cách tôi phù hợp với tất cả cùng nhau.

Cài đặt os-prober đầu tiên :

~$ sudo apt install os-prober

Nhưng os-prober sẽ không tìm thấy bản cài đặt cũ nếu hệ thống tập tin gốc của nó không được gắn kết. Vì vậy, làm điều đó (của tôi là trên / dev / sda1):

~$ sudo mkdir /mnt/oldroot
~$ sudo mount /dev/sda1 /mnt/oldroot

Bây giờ tôi thực thi grub-mkconfigđể có được các mục menu grub trên thiết bị xuất chuẩn và chuyển hướng nó đến một tệp tạm thời:

~$ sudo grub-mkconfig > /tmp/oldmenu.cfg

Bây giờ tôi chỉnh sửa tệp này và xóa mọi thứ trừ các mục cho các menu cũ vì vậy tôi chỉ còn lại menuentry ... {...}submenu ... {...}. Sau đó, tôi nối nó vào /etc/grub.d/40_custom:

~$ sudo bash -c 'cat /tmp/oldmenu.cfg >> /etc/grub.d/40_custom'
~$ sudo update-grup

Dọn dẹp:

~$ sudo umount /mnt/oldroot
~$ sudo rmdir /mnt/oldroot
~$ rm /tmp/oldmenu.cfg

Đó là nó. Bây giờ mỗi khi gói thực thi cập nhật-grub, mục nhập cho cài đặt cũ sẽ không bị mất và luôn được thêm vào.

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.