GNU/Linux >> Belajar Linux >  >> Linux

Linux – Dual Boot Windows Pada Harddisk Kedua, Sistem UEFA/gpt?

Saya ingin menginstal linux, tetapi saya tidak ingin mengambil risiko merusak instalasi windows saya saat ini karena saya telah mendengar banyak cerita horor. Untungnya, saya memiliki hard drive ekstra. Bisakah saya menginstal linux ke dalamnya dan kemudian dual boot windows tanpa harus memodifikasi drive windows?

Selain itu, saya memiliki "BIOS" UEFI dan drive windows dalam format GPT.

Jawaban yang Diterima:

Saya akan menggunakan istilah BIOS di bawah ini ketika mengacu pada konsep yang sama untuk sistem UEFI yang lebih baru dan sistem BIOS tradisional, karena sementara ini adalah pertanyaan berorientasi UEFI, berbicara tentang "BIOS" lebih cocok dengan, misalnya, dokumentasi GRUB, dan "BIOS/UEFI" adalah terlalu kikuk. GRUB (sebenarnya, GRUB 2 — ini sering digunakan secara ambigu) adalah bootloader yang diinstal oleh linux dan digunakan untuk dual boot Windows.

Pertama, sedikit tentang urutan drive dan urutan boot. Mendorong pesanan mengacu pada urutan drive secara fisik terhubung ke bus pada motherboard (drive pertama, drive kedua, dll); informasi ini dilaporkan oleh BIOS. Pesanan boot mengacu pada urutan di mana BIOS memeriksa drive yang dapat di-boot. Ini tidak harus sama dengan urutan drive, dan biasanya dapat dikonfigurasi melalui layar pengaturan BIOS. Urutan drive tidak boleh dikonfigurasi atau dipengaruhi oleh urutan boot, karena itu akan menjadi hal yang sangat tidak ramah OS untuk dilakukan (tetapi secara teori BIOS yang tumpul bisa). Juga, jika Anda mencabut drive pertama, drive kedua kemungkinan akan menjadi yang pertama. Kami akan menggunakan UUID dalam mengonfigurasi boot loader untuk mencoba dan menghindari masalah seperti ini (pemasang linux kontemporer juga melakukan ini).

Cara ideal untuk mendapatkan apa yang Anda inginkan adalah menginstal linux ke drive kedua dalam hal urutan drive lalu pilih dulu dari segi boot order menggunakan pengaturan UEFI. Keuntungan tambahan dari ini adalah Anda kemudian dapat menggunakan urutan boot BIOS/UEFI untuk memilih drive windows dan melewati grub jika Anda mau. Alasan saya merekomendasikan linux di drive kedua adalah karena GRUB harus "memuat" bootloader asli Windows, dan bootloader windows selalu menganggapnya ada di drive pertama. Namun, ada cara untuk mengelabuinya, jika Anda lebih suka atau membutuhkannya sebaliknya.

Mudah-mudahan, Anda bisa melanjutkan dan menggunakan live CD atau apa pun dan menyelesaikannya menggunakan penginstal GUI. Namun, tidak semua penginstal dibuat sama, dan jika ini menjadi kacau dan Anda mengalami masalah seperti:

  1. Saya menginstal linux ke pertama disk dan sekarang saya tidak dapat mem-boot windows, atau

  2. Saya menginstal linux ke disk kedua, tetapi menggunakan disk pertama untuk bootloader, dan sekarang saya tidak dapat mem-boot apa pun!

Kemudian terus membaca. Dalam kasus kedua, Anda harus terlebih dahulu mencoba dan menginstal ulang linux ke disk kedua, dan kali ini pastikan di situlah bootloader pergi. Cara termudah dan paling mudah untuk melakukannya adalah dengan menghapus sementara drive Windows dari mesin, karena kita akan menganggap tidak ada tambahan yang diinstal di dalamnya, terlepas dari urutan drive.

Setelah Anda menginstal linux dan Anda memastikannya dapat boot, pasang kembali drive Windows (jika Anda menghapusnya — dan ingat, kami idealnya menginginkannya terlebih dahulu dalam hal urutan drive, dan drive kedua terlebih dahulu dalam hal boot order) dan lanjutkan ke langkah berikutnya.

Mengakses konfigurasi GRUB

Boot linux, buka terminal, dan

> su root

Anda akan dimintai kata sandi root. Mulai saat ini, Anda adalah pengguna super di terminal itu (untuk memeriksa, coba whoami ), jadi jangan lakukan hal bodoh. Namun, Anda masih pengguna biasa di GUI, dan karena kami akan mengedit file teks, jika Anda lebih suka editor GUI, kami harus mengubah sementara kepemilikan file itu dan direktori tempatnya:

> chown -R yourusername /etc/grub.d/

Jika Anda mendapatkan "Operasi tidak diizinkan", Anda tidak su dengan baik. Jika Anda mendapatkan chown: invalid user: ‘yourusername’ , Anda mengambil perintah terakhir terlalu harfiah.

Anda sekarang dapat menavigasi ke /etc/grub.d di browser file Anda dan cari file bernama 40_custom . Seharusnya terlihat seperti ini:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

Jika Anda tidak dapat menemukannya, di terminal root masukkan perintah berikut:

> touch /etc/grub.d/40_custom
> chmod 755 /etc/grub.d/40_custom
> chown yourusername /etc/grub.d/40_custom

Buka di editor teks Anda, salin tempel bagian di atas (mulai w/ #!/bin/sh ) dan ke langkah berikutnya.

Terkait:Bash:Shift+tombol panah membuat A,B,C,D?

Menambahkan opsi boot Windows

Salin-tempel ini dengan editor teks di akhir file:

menuentry "MS Windows" {
        insmod part_gpt
        insmod search_fs_uuid
        insmod ntfs
        insmod chain
}

Ini adalah daftar modul yang dibutuhkan GRUB untuk menyelesaikan sesuatu (ntfs mungkin berlebihan, tetapi juga tidak boleh menyakiti apa pun). Perhatikan bahwa ini adalah entri yang tidak lengkap — kita perlu menambahkan beberapa perintah penting.

Menemukan Bootloader Tahap Kedua Windows

Instalasi linux Anda mungkin telah mengotomatiskan partisi Windows Anda dan Anda seharusnya dapat menemukannya di browser file. Jika tidak, cari cara untuk membuatnya (jika Anda tidak yakin bagaimana caranya, ajukan pertanyaan di situs ini). Setelah selesai, kita perlu mengetahui titik pemasangan — ini harus jelas di browser file, mis. /media/ASDF23SF23/ . Untuk menghemat pengetikan, kita akan memasukkannya ke dalam variabel shell:

win="/whatever/the/path/is"

Seharusnya tidak ada spasi di kedua sisi tanda sama dengan. Jangan sertakan elemen apa pun dari jalur Windows di sini. Ini harus mengarah ke folder tingkat atas pada partisi Windows. Sekarang:

cd $win
find . -name bootmgfw.efi

Ini bisa memakan waktu beberapa menit jika Anda memiliki partisi besar, tetapi kemungkinan besar hal pertama yang keluar adalah apa yang kita cari; mungkin ada referensi lebih lanjut dalam sistem file yang berisi string goobledygook panjang — bukan itu. Gunakan Ctrl-c untuk menghentikan pencarian setelah Anda melihat sesuatu yang pendek dan sederhana seperti ./Windows/Boot/EFI/bootmgfw.efi atau ./EFI/HP/boot/bootmgfw.efi .

Kecuali untuk . di awal, ingat jalan ini untuk nanti; Anda dapat menyalinnya ke editor teks Anda pada baris kosong di bagian bawah, karena kami akan menggunakannya di sana. Jika Anda ingin kembali ke direktori sebelumnya sekarang, gunakan cd - , meskipun tidak masalah di mana Anda berada di shell dari sini dan seterusnya.

Menyetel Parameter yang Tepat

GRUB harus dapat menemukan dan menyerahkan proses boot ke bootloader Windows tahap kedua. Kami sudah memiliki jalur di partisi Windows, tetapi kami juga memerlukan beberapa parameter untuk memberi tahu GRUB di mana partisi itu. Seharusnya ada alat yang diinstal pada sistem Anda yang disebut grub-probe atau (di, misalnya, Fedora) grub2-probe . Ketik grub lalu tekan Tab dua atau tiga kali; Anda akan melihat daftar termasuk satu atau yang lain.

> grub-probe --target=hints_string $win

Anda akan melihat string seperti:

--hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1

Kembali ke editor teks dengan konfigurasi GRUB di dalamnya dan tambahkan baris setelah semua insmod perintah (tetapi sebelum kurung kurawal penutup) sehingga terlihat seperti:

    insmod chain
    search --fs-uuid --set=root [the complete "hint bios" string]
}

Jangan putuskan baris itu atau izinkan editor teks Anda melakukannya. Ini mungkin membungkus di layar — cara mudah untuk membedakannya adalah dengan mengaktifkan penomoran baris. Selanjutnya:

> grub-probe --target=fs_uuid $win

Ini harus mengembalikan string huruf, angka, dan kemungkinan tanda hubung yang lebih pendek seperti "123A456B789X6X" atau "b942fb5c-2573-4222-acc8-bbb883f19043". Tambahkan itu di akhir search --fs-uuid baris setelah string petunjuk bios, dipisahkan dengan spasi.

Berikutnya, jika (dan hanya jika) Windows berada di drive kedua dalam hal urutan drive , tambahkan baris setelah search --fs-uuid baris:

    drivemap -s hd0 hd1

Ini adalah "trik" yang disebutkan sebelumnya. Catatan itu tidak dijamin berhasil tetapi tidak ada salahnya untuk mencoba.

Terakhir, baris terakhir seharusnya:

    chainloader (${root})[the Windows path to the bootloader]
}

Untuk memperjelas saja, misalnya:

    chainloader (${root})/Windows/Boot/EFI/bootmgfw.efi

Itu dia. Simpan file dan periksa di browser file untuk memastikan file benar-benar telah disimpan dan terlihat seperti seharusnya.

Tambahkan Opsi Menu Baru ke GRUB

Ini dilakukan dengan alat yang disebut grub-mkconfig atau grub2-mkconfig; itu akan ada di daftar yang Anda temukan dengan Tab lebih awal. Anda mungkin juga memiliki perintah yang disebut update-grub . Untuk memeriksanya, cukup ketik di terminal root. Jika Anda mendapatkan "perintah tidak ditemukan", Anda perlu menggunakan grub-mkconfig secara langsung. Jika tidak (termasuk mendapatkan kesalahan yang lebih panjang), Anda baru saja mengatur konfigurasi dan dapat membaca sekilas.

Untuk menggunakan grub-mkconfig langsung, pertama-tama kita harus menemukan grub.cfg :

> find /boot -name grub.cfg

Ini mungkin /boot/grub/grub.cfg atau /boot/grub2/grub.cfg .

> grub-mkconfig -o /boot/grub/grub.cfg

update-grub akan secara otomatis memindai konfigurasi untuk menemukan kesalahan. grub-mkconfig tidak akan, tetapi penting untuk melakukannya karena jauh lebih mudah untuk menanganinya sekarang daripada ketika Anda mencoba mem-boot mesin. Untuk ini, gunakan grub-script-check (atau grub2-script-check ):

> grub-script-check /boot/grub/grub.cfg

Jika ini (atau update-grub ) menghasilkan kesalahan yang menunjukkan nomor baris, itu nomor baris di grub.cfg, tetapi Anda perlu memperbaiki bagian yang sesuai di /etc/grub.d/40_custom (file di editor teks Anda). Anda mungkin perlu root hanya untuk melihat file sebelumnya, jadi coba less /boot/grub/grub.cfg di terminal, tekan : , dan masukkan nomor baris. Anda akan melihat entri menu Anda. Temukan kesalahan ketik, perbaiki di editor teks, dan jalankan update-grub atau grub-mkconfig lagi.

Terkait:Hibrida dalam memori dan hard drive?

Setelah selesai, Anda dapat menutup editor teks dan mengetik exit di terminal untuk keluar dari mode superuser.

Mulai ulang!

Saat Anda masuk ke menu grub, gulir ke bawah dengan cepat (sebelum batas waktu berakhir, biasanya 5 detik) ke opsi "Windows" dan ujilah. Jika Anda mendapatkan pesan teks error dari grub, berarti ada yang salah dengan konfigurasi. Jika Anda mendapatkan pesan kesalahan dari Windows , masalah itu adalah antara Anda dan Microsoft. Namun jangan khawatir, drive Windows Anda belum dimodifikasi dan Anda akan dapat langsung mem-bootnya dengan meletakkannya terlebih dahulu (dalam hal urutan boot) melalui pengaturan BIOS.

Ketika Anda kembali ke linux lagi, kembalikan kepemilikan /etc/grub.d direktori dan isinya ke keadaan semula:

sudo chmod 755 /etc/grub.d/40_custom

Referensi

  • Panduan GRUB 2

  • Halaman GRUB Wiki Linux Arch

    Arch memiliki beberapa dokumentasi terbaik, dan sebagian besar (termasuk halaman itu) sebagian besar berlaku untuk semua distro GNU/Linux.


Linux
  1. Instal Linux Mint dengan Windows 8 | Dual Boot Windows 8 dan Linux Mint 12

  2. Cara dual boot Windows 10 dan MX Linux

  3. Buat drive USB Windows 10 (UEFI) yang dapat di-boot dari Linux

  1. fsck drive ntfs di Linux

  2. Dual boot Windows + Linux dengan enkripsi

  3. Apakah mungkin mem-boot Linux dari disk GPT pada sistem BIOS?

  1. Boot ganda Windows dan Linux menggunakan UEFI

  2. Boot ganda Ubuntu Linux dan Windows 7

  3. Cara dual boot Kali Linux dan Windows 10