Tôi đã cài đặt Windows 7, trong đó ăn tập tin khởi động của Ubuntu. Khi khởi động máy tính, nó bây giờ đi thẳng vào Windows, mà không cho tôi tùy chọn khởi động Ubuntu.
Làm thế nào tôi có thể lấy lại Ubuntu?
Tôi đã cài đặt Windows 7, trong đó ăn tập tin khởi động của Ubuntu. Khi khởi động máy tính, nó bây giờ đi thẳng vào Windows, mà không cho tôi tùy chọn khởi động Ubuntu.
Làm thế nào tôi có thể lấy lại Ubuntu?
Khi bạn cài đặt Windows, Windows cho rằng đó là hệ điều hành duy nhất (OS) trên máy, hoặc ít nhất nó không có tài khoản cho Linux. Vì vậy, nó thay thế GRUB bằng bộ tải khởi động riêng của nó. Những gì bạn phải làm là thay thế bộ nạp khởi động Windows bằng GRUB. Tôi đã thấy các hướng dẫn khác nhau để thay thế GRUB bằng cách nhét xung quanh với các lệnh GRUB hoặc một số lệnh như vậy, nhưng với tôi, cách dễ nhất là đơn giản chroot
vào cài đặt và chạy của bạn update-grub
. chroot
là điều tuyệt vời vì nó cho phép bạn làm việc trên bản cài đặt thực tế của bạn, thay vì cố gắng chuyển hướng mọi thứ ở đây và ở đó. Nó thực sự sạch sẽ.
Dưới đây là cách thực hiện:
Xác định số phân vùng của phân vùng chính của bạn. sudo fdisk -l
, sudo blkid
hoặc GParted (đã được cài đặt, theo mặc định, trong phiên trực tiếp) có thể giúp bạn ở đây. Tôi sẽ giả định trong câu trả lời này là /dev/sda2
, nhưng đảm bảo bạn sử dụng đúng số hiệu phân vùng cho hệ thống của bạn!
Nếu phân vùng chính của bạn nằm trong LVM, thay vào đó, thiết bị sẽ được đặt tại /dev/mapper/
, rất có thể, /dev/mapper/{volume}--{os}-root
Ở đâu {volume}
là tên khối lượng LVM và {os}
là hệ điều hành. Thi hành ls /dev/mapper
cho tên chính xác.
Gắn kết phân vùng của bạn:
sudo mount /dev/sda2 /mnt #Replace sda2 with the partition from step 2
Nếu bạn có một /boot
, /var
hoặc là /usr
phân vùng, lặp lại các bước 2 và 3 để gắn các phân vùng này vào /mnt/boot
, /mnt/var
và /mnt/usr
tương ứng. Ví dụ,
sudo mount /dev/sdXW /mnt/boot
sudo mount /dev/sdXY /mnt/var
sudo mount /dev/sdXZ /mnt/usr
thay thế sdXW
, sdXY
và sdXZ
với số phân vùng tương ứng.
Gắn kết một số công cụ cần thiết khác:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
Nếu Ubuntu được cài đặt ở chế độ EFI (xem câu trả lời này nếu bạn không chắc chắn), sử dụng sudo fdisk -l | grep -i efi
hoặc GParted để tìm phân vùng EFI của bạn. Nó sẽ có một nhãn EFI
. Gắn kết phân vùng này, thay thế sdXY
với số phân vùng thực tế cho hệ thống của bạn:
sudo mount /dev/sdXY /mnt/boot/efi
chroot
vào cài đặt Ubuntu của bạn:
sudo chroot /mnt
Tại thời điểm này, bạn đang ở trong cài đặt của bạn, không phải phiên trực tiếp và chạy dưới dạng gốc. Cập nhật grub:
update-grub
Nếu bạn gặp lỗi hoặc nếu chuyển sang bước 7 không khắc phục được sự cố của bạn, hãy chuyển sang bước 8. (Nếu không, đó là tùy chọn.)
Tùy thuộc vào tình huống của bạn, bạn có thể phải cài đặt lại grub:
grub-install /dev/sda
update-grub # In order to find and add windows to grub menu.
Nếu Ubuntu được cài đặt ở chế độ EFI, và UUID phân vùng EFI đã thay đổi, bạn có thể cần phải cập nhật nó trong /etc/fstab
. So sánh nó:
blkid | grep -i efi
grep -i efi /etc/fstab
Nếu URIID phân vùng EFI hiện tại (từ blkid
) khác với một trong /etc/fstab
, cập nhật /etc/fstab
với UUID hiện tại.
Nếu mọi thứ hoạt động không có lỗi, thì bạn đã sẵn sàng:
exit
sudo reboot
Tại thời điểm này, bạn sẽ có thể khởi động bình thường.
Nếu bạn không thể khởi động bình thường và không thực hiện bước 8 vì không có thông báo lỗi, hãy thử lại với bước 8.
Trình cài đặt Windows không quan tâm đến hệ điều hành khác trong hệ thống. Vì vậy, nó viết mã riêng trên bản ghi khởi động chính. May mắn là giải pháp cũng dễ dàng.
Bạn cần phải sửa chữa MBR. Làm như sau
Khởi động bằng cách sử dụng một usb / cd trực tiếp của ubuntu.
Sử dụng boot-repair
để khắc phục sự cố.
Sau khi khởi động với usb / cd trực tiếp, hãy chạy lệnh sau trong terminal:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Sử dụng Recomended Repair
.
Thêm thông tin - https://help.ubuntu.com/community/Boot-Repair
Tôi không bao giờ gặp rắc rối bằng cách sử dụng các hướng dẫn sau:
https://wiki.ubuntu.com/Grub2#Recover
Trước hết, bạn phải khởi động hệ thống của bạn từ một đĩa CD trực tiếp. Sau đó
PHƯƠNG PHÁP 3 - CHROOT
Phương pháp cài đặt này sử dụng lệnh chroot để truy cập vào các tệp của hệ thống bị hỏng. Khi lệnh chroot được phát hành, LiveCD xử lý hệ thống bị hỏng / như của riêng nó. Các lệnh chạy trong một môi trường chroot sẽ ảnh hưởng đến hệ thống tập tin bị hỏng và không của LiveCD.
Khởi động vào LiveCD Desktop (Ubuntu 9.10 hoặc mới hơn). Xin lưu ý rằng CD Live phải giống với hệ thống bạn đang sửa - hoặc 32 bit hoặc 64 bit (nếu không thì chroot sẽ thất bại).
Mở một thiết bị đầu cuối (Ứng dụng> Phụ kiện> Thiết bị đầu cuối).
Xác định phân vùng hệ thống bình thường của bạn - (công tắc là chữ thường "L")
sudo fdisk -l
Nếu bạn không chắc chắn, hãy chạy
df -Th
Tìm đúng kích thước đĩa và định dạng ext3 hoặc ext4.
Gắn phân vùng hệ thống bình thường của bạn:
Thay thế phân vùng chính xác: sda1, sdb5, v.v.
sudo mount /dev/sdXX /mnt
Thí dụ:
sudo mount /dev/sda1 /mnt
Chỉ khi bạn có một phân vùng khởi động riêng: sdYY là tên phân vùng / boot (ví dụ sdb3)
sudo mount /dev/sdYY /mnt/boot
Gắn kết các hệ thống tệp ảo quan trọng:
sudo mount --bind /dev /mnt/dev sudo mount --bind /dev/pts /mnt/dev/pts sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
Chroot vào thiết bị hệ thống bình thường của bạn:
sudo chroot /mnt
Nếu không có
/boot/grub/grub.cfg
hoặc không chính xác, hãy tạo một tài khoản bằngupdate-grub
Cài đặt lại GRUB 2:
Thay thế thiết bị chính xác - sda, sdb, v.v. Không chỉ định số phân vùng.
grub-install /dev/sdX
Xác minh cài đặt (sử dụng đúng thiết bị, ví dụ sda. Không chỉ định phân vùng):
sudo grub-install --recheck /dev/sdX
Thoát khỏi chroot: CTRL-D trên bàn phím
Ngắt kết nối hệ thống tệp ảo:
sudo umount /mnt/dev/pts sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys
Nếu bạn gắn một phân vùng / boot riêng biệt:
sudo umount /mnt/boot
Ngắt kết nối thư mục LiveCD / usr:
sudo umount /mnt/usr
Ngắt kết nối thiết bị cuối cùng:
sudo umount /mnt
Khởi động lại.
sudo reboot
Khởi động từ một ổ đĩa USB hoặc đĩa CD Ubuntu trực tiếp
và
Cài đặt Boot-Repair trên ubuntu bằng các bước sau
Mở terminal và chạy các lệnh sau
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
Sau khi hoàn thành cài đặt, bạn có thể khởi động nó từ System-> Administration-> Boot-Repair menu nếu bạn sử dụng Gnome, hoặc tìm kiếm "boot-repair" trong dấu gạch ngang nếu bạn sử dụng Unity. Sau đó làm theo các ảnh chụp màn hình sau:
Phương pháp 1
Nhấn Áp dụng và Khởi động lại hệ thống
Phương pháp 2
Chỉ cần cài đặt easyBCD
trong Windows 7 và làm
Thêm mục nhập mới> Linux / BSD> (chọn) Grub2> (đẩy) Thêm mục nhập
Sau đó, bạn có thể chọn Ubuntu trên bộ tải khởi động Windows 7 để đi đến Grub2 (bộ nạp khởi động trước).
Bây giờ có một giải pháp đơn giản hơn:
Điều này đã được thử nghiệm trên một máy tính xách tay Samsung Series 7 Chronos khởi động kép Windows 8 và Ubuntu 13,10, khởi động an toàn bị vô hiệu hóa, UEFI và khởi động di sản được kích hoạt.
Trên các hệ thống dựa trên EFI (chẳng hạn như hầu hết các hệ thống được vận chuyển với Windows 8 trở lên), Windows đôi khi sẽ cập nhật bộ nạp khởi động của nó hoặc đặt lại nó làm trình khởi động mặc định. Điều này đặc biệt phổ biến khi cài đặt lại hệ điều hành hoặc thực hiện cập nhật hệ thống lớn (ví dụ: nâng cấp lên bản phát hành Windows mới nhất). Lưu ý rằng Windows không thực sự xóa bất kỳ tệp GRUB nào trên máy tính dựa trên EFI. Tất cả mọi thứ cần thiết để khởi động Ubuntu vẫn còn tại chỗ; nó chỉ bị bỏ qua. Trong những trường hợp này, việc cài đặt lại hoàn toàn GRUB là quá mức cần thiết, và thực tế là mang một cơ hội nhỏ (nhỏ) sẽ tạo ra các vấn đề mới.
Vì vậy, thay vì cài đặt lại GRUB trong những trường hợp này, tôi khuyên bạn nên đặt lại GRUB (hoặc bất kỳ bộ nạp khởi động hoặc trình quản lý khởi động nào bạn muốn) làm mặc định. Có một số cách để thực hiện việc này, bao gồm:
ubuntu
nhập vào danh sách tùy chọn khởi động và di chuyển nó lên đầu danh sách. Lần sau khi bạn khởi động lại, GRUB sẽ xuất hiện. (Nếu bạn sử dụng một cái gì đó khác hơn GRUB, bạn sẽ cần phải xác định vị trí của nó.)bcdedit
-- Những cửa sổ bcdedit
công cụ có thể được sử dụng để đặt GRUB thành thứ tự khởi động mặc định. Lệnh bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
, được nhập vào Người quản lý Cửa sổ nhắc lệnh, sẽ làm điều này; tuy nhiên, nếu máy tính của bạn khởi động với Khởi động an toàn, bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
sẽ được yêu cầu thay thế. Thực tế, lệnh sau sẽ thông thường làm việc ngay cả khi Secure Boot không được sử dụng, vì vậy tôi sẽ sử dụng lệnh đó trước. Lưu ý rằng có một công cụ Windows shell tiên tiến hơn đòi hỏi một cú pháp hơi khác so với tôi đã trình bày, nhưng tôi không nhớ lại các chi tiết.ubuntu
mục khởi động Ubuntu sẽ hiển thị trong trình đơn trình quản lý khởi động này, cho phép bạn khởi động vào Ubuntu. Ngoài ra, bạn có thể khởi động vào một môi trường khẩn cấp của Ubuntu, như trình cài đặt được khởi động trong chế độ "thử trước khi cài đặt". Dù bằng cách nào, bạn có thể sử dụng efibootmgr
để điều chỉnh thứ tự khởi động:
sudo efibootmgr
để xem các mục khởi động.BootOrder
hàng.ubuntu
và lưu ý Boot####
con số.sudo efibootmgr -o xxxx[,yyyy,zzzz,....]
để thay đổi thứ tự khởi động, tạo xxxx
số cho Ubuntu. Điều gì đến sau đó là rất có thể không phải là rất quan trọng, mặc dù tôi đã lưu ý rằng Windows dường như có khả năng tự thêm trở lại vào đầu của trình tự khởi động nếu nó không có trong danh sách. Vì vậy, bạn có lẽ nên đảm bảo rằng Windows có trong danh sách, và nó có thể an toàn nhất để sắp xếp lại danh sách để tất cả các mục gốc có ở đó, chỉ với ubuntu
mục nhập được chuyển lên đầu danh sách.Có các biến thể khác về các thủ tục này, chẳng hạn như sử dụng bcfg
trong một vỏ EFI, sử dụng bless
trong macOS, sử dụng rEFInd để khởi động một lần, v.v. tôi sẽ bắt đầu với EasyUEFI, mặc dù; nó có thể là giải pháp đơn giản nhất. Đôi khi, Windows tự khẳng định rằng nó sẽ mặc định mỗi khi nó khởi động, và các báo cáo chỉ ra rằng bcdedit
có thể làm tốt hơn trong việc giải quyết vấn đề đó.
Lưu ý rằng không có điều nào trước đó áp dụng cho các cài đặt chế độ BIOS; tuy nhiên, vì hầu hết các máy tính được khởi động cùng Windows 8 hoặc mới hơn trong chế độ EFI, việc cài đặt chế độ BIOS đang trở nên ngày càng hiếm, vì vậy trong nhiều trường hợp tốt hơn là xử lý vấn đề theo cách EFI thay vì cài đặt lại GRUB một cách mù quáng.
Boot-Repair đã làm việc cho tôi. Nó rất dễ sử dụng ứng dụng đồ họa, bạn không cần phải sử dụng dòng lệnh, bạn chỉ cần bấm vào một nút :)
Tất cả các tùy chọn sửa chữa có sẵn được mô tả trong Tài liệu Ubuntu và có một trang riêng giải thích cách khởi động Boot-Repair (bằng cách tạo đĩa khởi động hoặc cài đặt nó trong một đĩa Ubuntu đang tồn tại) và cách sử dụng nó.
Chỉ cần khởi động Ubuntu live CD, cài đặt Boot-Repair và chạy nó.