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 ... {...}và 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.