GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menginstal GRUB di drive baru?

Saya bukan ahli grub2 (maaf) tapi coba tambahkan --skip-fs-probe ke baris grub-install Anda, saya menemukan ini mencegah pembuatan /boot/grub/device.map yang dapat menyebabkan boot ke prompt grub. Menurut saya tanpa parameter ini grub-install, alih-alih melakukan apa yang Anda perintahkan, menurut saya grub-install lebih pintar dari Anda, dan mungkin melakukan sesuatu yang berbeda.

Hal lain adalah memastikan Anda menggunakan grub-install yang tepat (yaitu untuk grub2 dan bukan untuk grub asli). Ini bukan masalah jika Anda berada di dalam Centos tetapi dengan SystemRecoveryCD kedua versi tersedia sehingga Anda harus menggunakan grub2-install . Saya belajar dengan cara yang sulit...

Dan seperti yang ditunjukkan oleh @wurtel (pujian), Anda harus menentukan drive, bukan partisi. Grub2 menginstal di sektor 0 dari seluruh drive disk, dan 'rintisan' ini adalah yang berjalan saat boot, tetapi perlu mengetahui di mana pada disk itu harus menginstal file untuk tahap boot berikutnya - inilah --root-directory parameter untuk. (Saya pikir.)

Membaca man grub-install dan googling saya melihat bahwa --root-directory tidak benar-benar dimaksudkan untuk digunakan untuk grub2 versi 1.99++, meskipun itu bekerja menurut pengalaman saya. Anda dimaksudkan untuk menggunakan --boot-directory dan merujuk ke direktori boot yang sebenarnya, jadi ini akan memberi Anda:

grub-install /dev/sdb --skip-fs-probe --boot-directory=/media/new_drive/boot

Beginilah cara saya memindahkan instalasi Debian yang terdiri dari partisi boot /boot dan partisi root / ke drive baru dan membuatnya dapat di-boot menggunakan GNU GRUB:

Kloning partisi

  • Menggunakan live CD GParted, buat partisi boot dan root pada drive baru.
  • Menggunakan konsol root di GParted, pasang partisi boot lama (misalkan /dev/sda1 ) dan partisi baru (/dev/sdb1 ):mount /dev/sda1 /mnt/oldBoot && mount /dev/sdb1 /mnt/newBoot
  • Salin data dari partisi boot lama ke yang baru:cp -afv /mnt/oldBoot /mnt/newBoot . Penjelasan tentang cp -afv :
    • a singkatan dari "archive" yang artinya:
      • jangan dereferensi link
      • salin secara rekursif (seperti -R )
      • pertahankan semua atribut (stempel waktu, pemilik, izin)
    • f :memaksa, jika file tujuan yang ada tidak dapat dibuka, hapus dan coba lagi
    • v :verbose, jelaskan apa yang sedang dilakukan
  • Ini akan menghasilkan beberapa output di konsol Anda yang menunjukkan file mana yang sedang disalin dan apakah cp membuat kemajuan
  • Pasang dan salin file dari partisi root lama Anda ke yang baru:
    • Demi keamanan:umount /mnt/oldBoot && umount /mnt/newBoot
    • Pasang partisi root lama dan baru (dengan asumsi /dev/sda2 dan /dev/sdb2 ):mount /dev/sda2 /mnt/oldRoot && mount /dev/sdb2 /mnt/newRoot
    • Salin data partisi akar lama ke partisi akar baru:cp -afv /mnt/oldRoot /mnt/newRoot
  • Edit tabel sistem file yang menentukan partisi mana yang dipasang saat boot (saya akan menggunakan Vim untuk itu):
    • vi /etc/fstab

    • Anda akan melihat bahwa partisi lama Anda direferensikan di sini. Gunakan UUID dari partisi baru sebagai gantinya

    • Anda dapat memasukkan sementara semua UUID ke fstab agar lebih mudah menyalin dan menempel dengan :r !blkid

    • Gunakan UUID partisi baru Anda untuk mengubah entri di fstab. Mereka seharusnya terlihat seperti ini:

       `# <file system> <mount point> <type> <options> <dump> <pass>
       # Root partition
       UUID=76fd1ffd-fb96-4ab4-be1a-42f8e9223983 / ext4 errors=remount-ro 0 1
       # Boot partition
       UUID=e560e29e-8752-4b83-b1ee-4b86c0009f0b /boot ext2 defaults 0 2`
      
      • Hapus keluaran dari blkid dari fstab yang Anda sisipkan sebelumnya dengan :r !blkid

Instal GRUB

  • Pasang sistem file virtual dari live CD GParted:

    mount --bind /dev /mnt/newRoot/dev mount --bind /proc /mnt/newRoot/proc mount --bind /sys /mnt/newRoot/sys

  • Jadikan utilitas GRUB dari live CD GParted tersedia untuk partisi root:mount --bind /usr/ /mnt/newRoot/usr

  • Pasang partisi boot ke partisi root karena GRUB akan menyimpan konfigurasinya di /boot :mount /dev/sdb1 /mnt/newRoot/boot

  • Gunakan chroot /mnt/newRoot untuk menjadikan partisi root baru untuk sementara sebagai root dari sistem file

  • Buat file konfigurasi GRUB di /boot/grub/grub.cfg menggunakan update-grub2

  • Instal GRUB di drive baru:grub-install /dev/sdb . Anda tidak boleh menentukan nomor partisi di sini

  • Kembali ke sistem berkas live CD GParted:exit

  • Lepas partisi:umount /mnt/newRoot/*

  • Matikan mesin

  • Jika Anda memasang beberapa drive, pastikan drive yang lebih baru didahulukan dalam urutan boot

  • Mulai mesin

Petunjuk ini terinspirasi dari oaktreepeak.com.

Alternatifnya, Anda dapat mencoba Clonezilla untuk mencapai hal yang sama.


Linux
  1. Cara Menginstal OpenVZ Di Debian 9

  2. Bagaimana cara membuat partisi baru dan memformat hard drive saya di parted?

  3. Bagaimana cara memasang sistem file di lingkungan hanya-baca?

  1. Bagaimana cara mengganti hard drive di Linux

  2. Bagaimana Cara Memasang Hard Drive Eksternal?

  3. Cara me-mount partisi baru di Red hat linux

  1. Cara mempartisi dan memformat drive di Linux

  2. Cara Memasang Partisi NTFS di Linux

  3. Cara memasang drive USB di Kali Linux