Ubuntu'nun boot dosyasını içeren Windows 7'yi kurdum. Bilgisayarı başlatırken, şimdi Ubuntu'yu önyükleme seçeneği vermeden doğrudan Windows'a gidiyor.
Ubuntu'yu nasıl geri alabilirim?
Ubuntu'nun boot dosyasını içeren Windows 7'yi kurdum. Bilgisayarı başlatırken, şimdi Ubuntu'yu önyükleme seçeneği vermeden doğrudan Windows'a gidiyor.
Ubuntu'yu nasıl geri alabilirim?
Yanıtlar:
Windows'u kurduğunuzda Windows, makinedeki tek işletim sistemi (OS) olduğunu veya en azından Linux için geçerli olmadığını varsaymaktadır. Bu yüzden GRUB'u kendi yükleyici ile değiştirir. Yapmanız gereken, Windows önyükleyicisini GRUB ile değiştirmek. GRUB komutlarını GRUB komutları veya benzeri bir şeyle karıştırmakla değiştirmek için çeşitli talimatlar gördüm, ancak bana göre en kolay yöntem chroot
kurulum ve çalıştırma yapmak update-grub
. chroot
Bu harika, çünkü burada ve oradaki şeyleri yeniden yönlendirmeye çalışmak yerine gerçek kurulumunuz üzerinde çalışmanıza izin veriyor. Gerçekten temiz.
İşte nasıl:
Ana bölümünüzün bölüm numarasını belirleyin. sudo fdisk -l
, sudo blkid
veya GParted (önceden yüklenmiş olması gerekir, varsayılan olarak, canlı oturumda) bu konuda size yardımcı olabilir. Bu cevabın bunun olduğunu kabul edeceğim /dev/sda2
, ancak sisteminiz için doğru bölüm numarasını kullandığınızdan emin olun!
Ana bölme bir LVM ise , cihaz yerine yer alacak /dev/mapper/
, büyük olasılıkla, /dev/mapper/{volume}--{os}-root
nerede {volume}
LVM hacmi adıdır ve {os}
işletim sistemidir. ls /dev/mapper
Tam adı için yürütün .
Bölümünüzü bağlayın:
sudo mount /dev/sda2 /mnt #Replace sda2 with the partition from step 2
Eğer ayrı varsa /boot
, /var
ya da /usr
bölümleri tekrarlayın bu bölümleri mount için 2. ve 3. adımları /mnt/boot
, /mnt/var
ve /mnt/usr
sırasıyla. Örneğin,
sudo mount /dev/sdXW /mnt/boot
sudo mount /dev/sdXY /mnt/var
sudo mount /dev/sdXZ /mnt/usr
değiştirme sdXW
, sdXY
ve sdXZ
ilgili bölüm numaralarıyla.
Bağlamak için gerekli diğer bazı şeyleri bağlayın:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
Ubuntu EFI kipinde kuruluysa ( emin değilseniz bu cevaba bakınız ), sudo fdisk -l | grep -i efi
EFI bölümünüzü bulmak için ya da GParted kullanın. Bir etiketi olacak EFI
. sdXY
Sisteminiz için gerçek bölüm numarasıyla değiştirerek bu bölümü takın :
sudo mount /dev/sdXY /mnt/boot/efi
chroot
Ubuntu kurulumunuza:
sudo chroot /mnt
Bu noktada, kurulumunuzda, canlı oturumda değil ve root olarak çalışıyorsunuz. Grub güncellemesi:
update-grub
Hata alırsanız veya 7. adıma gitmek sorununuzu çözmediyse, 8. adıma gidin. (Aksi takdirde, isteğe bağlıdır.)
Durumunuza bağlı olarak grub'u yeniden kurmanız gerekebilir:
grub-install /dev/sda
update-grub # In order to find and add windows to grub menu.
Ubuntu EFI kipinde kuruluysa ve EFI bölümü UUID değişmişse, güncellemeniz gerekebilir /etc/fstab
. Onu karşılaştır:
blkid | grep -i efi
grep -i efi /etc/fstab
Eğer geçerli EFI bölümü UUID (den blkid
) bir olandan farklıysa, mevcut UUID ile /etc/fstab
güncelleyin /etc/fstab
.
Her şey hatasız çalışıyorsa, hepiniz hazırsınız:
exit
sudo reboot
Bu noktada normal önyükleme yapabilmeniz gerekir.
Normal bir şekilde önyükleyemiyorsanız ve 8. adımı yapmadıysanız, hata mesajı olmadığından, 8. adımı tekrar deneyin.
grub-efi-amd64
ve güvenli önyükleme kullanıyorsanız kullanmak isteyebilirsiniz grub-install --uefi-secure-boot
. Bu ayrıca superuser.com/a/376471/197980
Windows yükleyici, sistemdeki diğer işletim sistemlerini önemsemiyor. Bu yüzden ana önyükleme kaydı üzerine kendi kodunu yazar. Neyse ki çözüm de kolaydır.
MBR'yi onarmanız gerekir. Aşağıdakileri yapın
Ubuntu canlı bir usb / cd kullanarak boot edin. boot-repair
Sorunu çözmek için kullanın .
Canlı usb / cd ile başlattıktan sonra, aşağıdaki komutu terminalde çalıştırın:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Kullanın Recomended Repair
.
Daha fazla bilgi - https://help.ubuntu.com/community/Boot-Repair
Canlı bir Ubuntu USB pendrive veya CD'sinden önyükleme yapın ve
ubuntu'da Önyükleme Onarma'yı izleyin.
Terminali açın ve aşağıdaki komutları çalıştırın.
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
Kurulumu tamamladıktan sonra, Gnome kullanıyorsanız Sistem-> Yönetim-> Boot-Repair menüsünden başlatabilir ya da Unity kullanıyorsanız "boot-repair" (çizgi-önyükleme) araması yapabilirsiniz. Ardından aşağıdaki ekran görüntülerini izleyin:
Yöntem 1
Uygula ve sistemi yeniden başlat
Yöntem 2
Sadece easyBCD
Windows 7'ye yükleyin ve yapın
Yeni Giriş Ekle> Linux / BSD> (seç) Grub2> (bas) Giriş Ekle
Ardından Grub2'ye (önceki önyükleyici) gitmek için Windows 7 önyükleyicisindeki Ubuntu'yu seçebilirsiniz .
EFI tabanlı sistemlerde (örneğin, Windows 8 veya sonraki sürümleriyle birlikte gelen çoğu sistem gibi), Windows bazen önyükleme yükleyicisini günceller veya varsayılan önyükleyici olarak sıfırlar. Bu özellikle işletim sistemini yeniden yüklerken ya da büyük bir sistem güncellemesi yaparken yaygındır (örneğin en son Windows sürümüne yükseltme). Windows'un EFI tabanlı bir bilgisayarda herhangi bir GRUB dosyasını gerçekten silmesinin olası olmadığını unutmayın. Ubuntu'yu başlatmak için gereken her şey hala yerinde; bu sadece bypass ediliyor. Bu gibi durumlarda, GRUB'un tam olarak yeniden kurulması çok büyük bir öneme sahiptir ve aslında yeni sorunlar yaratması için (küçük) bir şans taşır.
Bu nedenle, bu durumlarda GRUB’u yeniden yüklemek yerine, GRUB’u (veya tercih ettiğiniz önyükleyici veya önyükleme yöneticisini) varsayılan olarak sıfırlamanızı öneririm. Bunu yapmanın birkaç yolu vardır:
ubuntu
önyükleme seçenekleri listesindeki girişi bulun ve listenin en üstüne taşıyın. Bir dahaki sefer yeniden başlattığınızda, GRUB gelmeli. (GRUB dışında bir şey kullanıyorsanız, girişini bulmanız gerekir.)bcdedit
- Windows bcdedit
aracı GRUB'u varsayılan önyükleme sırasına ayarlamak için kullanılabilir. Komut bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
bir yazıldığında, Yönetici Komut İstemi penceresinde, bunu yapacak; ancak, bilgisayarınız Güvenli Önyükleme etkinken önyükleme yaparsa, bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
bunun yerine gerekli olacaktır. Aslında, bu komut genellikle Güvenli Önyükleme kullanılmıyor olsa bile çalışır, bu yüzden önce bu komutu kullanırım. Unutmayın, sunduğumdan biraz farklı bir sözdizimi gerektiren daha gelişmiş bir Windows kabuk aracı var, ancak ayrıntıları hatırlamıyorum.ubuntu
Ubuntu önyükleme girişi bu önyükleme yöneticisi menüsünde görünecek ve Ubuntu'ya önyükleme yapmanıza olanak sağlayacaktır. Alternatif olarak, "yüklemeden önce dene" modunda başlatılan yükleyici gibi bir Ubuntu acil durum aracına da ön yükleme yapabilirsiniz. Her iki durumda da efibootmgr
, önyükleme sırasını ayarlamak için kullanabilirsiniz :
sudo efibootmgr
önyükleme girdileri görmek için.BootOrder
çizgiyi not edin .ubuntu
ve Boot####
numarasını not edin .sudo efibootmgr -o xxxx[,yyyy,zzzz,....]
hale önyükleme sırasını değiştirmek için xxxx
Ubuntu için numarayı. Bundan sonra gelenler çok önemli değil, ancak Windows'un listede değilse, kendisini yeniden başlatma sırasının başına geri ekleyebileceğini belirttiğimi belirttiğim halde. Bu nedenle, muhtemelen Windows'un listede olduğundan emin olmalısınız ve listeyi, listenin ubuntu
en üstüne taşınan tüm orijinal girişlerin orda olması için yeniden sıralamak en güvenli olabilir .Kullanmak gibi bu işlemler üzerindeki diğer varyantları vardır bcfg
kullanarak, bir EFI kabuğunda bless
benim kullanarak, MacOS içinde refind Gerçi EasyUEFI başlardım vb bir defalık önyükleme yapmak; en basit çözüm olması muhtemeldir. Bazen Windows, her başlatıldığında kendisini varsayılan yapmakta ısrar ediyor, ancak raporlar bcdedit
bu sorunla daha iyi başa çıkabileceğini gösteriyor .
Yukarıdakilerin hiçbirinin BIOS modu yüklemeleri için geçerli olmadığını unutmayın; Bununla birlikte, Windows 8 veya daha yeni sürümlerle birlikte gelen ve çoğu EFI modunda önyüklenen BIOS modu yüklemeleri gittikçe daha nadir hale geldiğinden, çoğu durumda sorunu GRUB'u yeniden yüklemek yerine, EFI yöntemiyle ele almak daha iyidir.
efibootmgr
, bir win10 tarafından karıştırılan önyükleme sırasını (Rod -> teşekkürler! Güncelleme. Daha sonra GRUB-bootmanager güncellemeden önce göründüğü gibi görünüyor, bu yüzden sağlanan çözümü benim için çalıştığını onaylayabilirim. EasyUEFI'nin temel sürümünü bulamadım, ancak sunulan ücretsiz olmayan pro sürümün yalnızca deneme sürümünü bulamadım.
Artık daha basit bir çözüm var:
Bu, Windows 8 ve Ubuntu 13.10 önyüklemeli bir Samsung Series 7 Chronos dizüstü bilgisayar çiftinde, güvenli önyükleme devre dışı, UEFI ve eski önyükleme etkinleştirilmiş olarak test edilmiştir.
Boot-Repair benim için çalıştı. Grafik uygulama kullanmak çok çok kolay, komut satırını kullanmanıza gerek yok, sadece bir tuşa tıklamanız gerekiyor :)
Mevcut tüm onarım seçenekleri Ubuntu belgelerinde açıklanmıştır ve Boot-Repair programının nasıl başlatılacağını (önyüklenebilir bir disk oluşturarak veya mevcut bir Ubuntu canlı diskine kurarak) ve nasıl kullanacağınızı açıklayan ayrı bir sayfa vardır .
Sadece bir Ubuntu canlı CD'si açın, Boot-Repair programını kurun ve çalıştırın.
chroot
Başka bir aracın kurması için Google’a göre bir onarım oluşturmak daha hızlı .
GRUB bozulduğunda, kullanıcı genellikle sistemlere erişemez, bu nedenle onarım bir canlı oturumdan (canlı CD veya canlı USB) yapılmalıdır.
GRUB molasının birçok olası nedeni vardır: Windows MBR üzerine yazma, DRM GRUB'un doğru şekilde kurulmasını önleme, kurulum hatası, donanım değişikliği ... GRUB'un başlangıçta Scott tarafından önerildiği şekilde güncellenmesi genellikle yeterli değildir; daha verimli, ancak yine de başka tweaks gerektiren çeşitli durumlar var (çekirdeğe seçenek ekleme, GRUB menüsünü gizleme, GRUB seçeneklerini değiştirme, doğru ana bilgisayar mimarisini seçme ...). GRUB'u onarmak için diğer zorluklar chroot kullanımı ve doğru bölümlerin / disklerin seçimidir.
Tüm bunlar küçük bir grafiksel araçta kolaylaştırılmıştır: Boot-Repair . Kolay kullanım için Ubuntu 12.04 CD'sine entegre edilecektir, ancak şimdi ihtiyacı olan insanlar için, onu zaten entegre eden bazı dağıtımlar var: Ubuntu-Güvenli-Remix (Boot-Repair'ı entegre eden Ubuntu CD'si), Boot-Repair-Disk (CD'yi çalıştırma -Başlangıçta geri dönüş), ...
Bu yardımcı olur umarım.
Scott ve Web-E tarafından verilen cevaplar yeterince iyi ve birçok kez yardımcı oldu. Ancak çoğu zaman, önyükleme aracı, grubun efi
dizin bulamadığı i386 ve amd64 platformuyla ilgili sorunlardan dolayı grubu onaramaz .
Sorunumu 10 kereden daha fazla bir sürede çözen şey, eski grub tesisatlarını elle temizlemek ve yeni bir tane yerleştirmektir.
İlk önce Scott'ın cevabından ilk 6 adımı uygulayın, eğer bir hata yaparsa 5. adımı atlayabilirsiniz:
- "Ubuntu'yu Dene" modunda, canlı CD'den veya canlı USB'den önyükleyin.
Ana bölümünüzün bölüm numarasını belirleyin.
sudo fdisk -l
,sudo blkid
veya GParted (önceden yüklenmiş olması gerekir, varsayılan olarak, canlı oturumda) bu konuda size yardımcı olabilir. Bu cevabın bunun olduğunu kabul edeceğim/dev/sda2
, ancak sisteminiz için doğru bölüm numarasını kullandığınızdan emin olun!Ana bölme bir LVM ise , cihaz yerine yer alacak
/dev/mapper/
, büyük olasılıkla,/dev/mapper/{volume}--{os}-root
nerede{volume}
LVM hacmi adıdır ve{os}
işletim sistemidir.ls /dev/mapper
Tam adı için yürütün .Bölümünüzü bağlayın:
sudo mount /dev/sda2 /mnt #Replace sda2 with the partition from step 2
Eğer ayrı varsa
/boot
,/var
ya da/usr
bölümleri tekrarlayın bu bölümleri mount için 2. ve 3. adımları/mnt/boot
,/mnt/var
ve/mnt/usr
sırasıyla. Örneğin,sudo mount /dev/sdXW /mnt/boot sudo mount /dev/sdXY /mnt/var sudo mount /dev/sdXZ /mnt/usr
değiştirme
sdXW
,sdXY
vesdXZ
ilgili bölüm numaralarıyla.Bağlamak için gerekli diğer bazı şeyleri bağlayın:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
Ubuntu EFI kipinde kuruluysa ([emin değilseniz bu cevaba bakınız] [efi]),
sudo fdisk -l | grep -i efi
EFI bölümünüzü bulmak için kullanın veya GParted kullanın. Bir etiketi olacakEFI
.sdXY
Sisteminiz için gerçek bölüm numarasıyla değiştirerek bu bölümü takın :sudo mount /dev/sdXY /mnt/boot/efi
chroot
Ubuntu kurulumunuza:sudo chroot /mnt
Sonra şu adımları uygulayın:
sudo dpkg --configure -a
sudo apt install -fy
sudo apt purge -y grub*-common grub-common:i386 shim-signed
sudo apt install -y grub-pc
sdXY
, önyükleyiciyi kurmak için akımı göstermeniz istenecektir . sudo fdisk -l
Komut kullanarak mevcut işletim sisteminizin nereye kurulduğunu bulun . Olarak etiketlenecek Linux
. Tuşunu kullanarak o pencereye gidin Tabve tuşunu kullanarak bir seçenek belirleyin Space.sudo grub-update
çifte kontrol için de yapabilirsiniz .Sorun hala devam ederse, birçok başka sorun türüyle başa çıkmak için grub hakkında gerçekten anlamak için Arch'ın wiki'sini okuyabilirsiniz . (Evet, Ubuntu için de yardımcı olur!).
Windows, Linux formatlı bölümleri görmez. Gparted işlevini liveCD'den kullanmanız ve önyükleme bayrağıyla NTFS olarak biçimlendirilmiş bir birincil bölüm oluşturmanız gerekir.
Yeni birincil bölüm, Windows bölüm tablosunu her zaman doğru şekilde sıfırlamadığından, genişletilmiş bölümün peşindeyse bazılarında sorun var. En iyi yedeklemeler ve ayrı bir bölüm tablosu yedeklemesi olması en iyisidir.
Bölüm tablosunu metin dosyasına yedekle ve harici cihaza kaydet.
sudo sfdisk -d /dev/sda > PTsda.txt
Bu sadece MBR (msdos) sistemleri içindir. Ubuntu kurulumunuz GPT bölüm sürücüsünde ise sadece Windows'u UEFI modunda kurabilir veya sürücüyü tekrar MBR'ye (msdos) dönüştürebilirsiniz.
Sadece fsck
komut grub-rescue
ekranı benim için düzeltti .
Live-CD'den önyükleme yapmak için Boot-Repair programını kullanın , ardından Terminal'i açın
Doğru cihazı alın:
sudo fdisk -l
Önyükleme aygıtını bulmanız gerekir, önyükleme aygıtının aşağıdaki *
gibi Önyükleme kategorisinde olması gerekir:
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 2000895 1998848 976M 82 Linux swap / Solaris
/dev/sda2 * 2000896 943716351 941715456 449G 83 Linux
Şimdi aşağıdakileri kullanarak diski onarın:
sudo fsck /dev/sda2 -y
Not: / dev / sda2 bu örnekteki önyükleme aygıtıdır.
Tamamlandığında yeniden başlat. Bitti.
Scott Severance'ın cevabı geçerli ve ayrıntılıdır ancak harici önyükleme aygıtı gerektirmeyen bir çözüm vardır ve bu nedenle, Ubuntu bölümlerinizi tanımlayıp el ile birleştirmenize gerek kalmaz chroot
.
Windows 10'da, Advanced Recovery
önyüklenecek bir aygıt (bölüm?) Seçmek için kullanabilirsiniz .
Git Settings
ve seç Update & Security
:
Git Recovery
:
Gönderen Advanced Startup
seçimRestart Now
Sonra seçin Use a Device
ve tüm önyükleme seçenekleri size sunulmalıdır. 'Ubuntu' bölümünü seçin ve bilgisayarınızın bu bölümden başlatılması gerekir.
Her zamanki Ubuntu ortamıma önyükleme yaptıktan sonra, sadece çalıştırmayı denedim grub-update
ama bu hiçbir değişiklik yapmadı.
Daha sonra /boot/efi
olan ve sonra /dev/nvme0n1p1
koştuğum bölümü buldum .sudo grub-install /dev/nvme0n1p1
sudo update-grub
Bu, ana önyükleme rekorumu defalarca geri yükledi, çünkü küçük güncelleştirmelerde MBR üzerine yazma konusunda yeni bir Windows 10 ilkesi var gibi görünüyor .
Burada sorunumu ana hatlarıyla açıklayan şablonlarmı boot-repair
silerek neden (muhtemelen) farklı bir sorun yaşadım /etc/grub.d/
: Ubuntu 18.04 Windows 10 kurulumundan sonra açılmıyor
@ Karels yorumunda işaret edildiği gibi, grub config içindeki dosyalar kullanılarak üretilir /etc/grub.d
. Benim dizin sadece içerdiği /etc/grub.d/25_custom
varolmayan .efi resimlere yönlendiren garip menü girişlerini içerdiği, hangi. /etc/grub.d
Şablonlarım belki tarafından gizlenmiş gibiydi boot-repair
.
Bunu şu şekilde düzelttim:
sudo mount /dev/sdxx /mnt
sudo cp /etc/grub.d/* /mnt/etc/grub.d/
sudo update-grub