Instal Ubuntu 18.04 desktop dengan RAID 1 dan LVM pada mesin dengan UEFI BIOS

11

Saya memiliki mesin dengan UEFI BIOS. Saya ingin menginstal Ubuntu 18.04, versi desktop dengan RAID 1 (dan LVM) sehingga sistem saya akan terus bekerja bahkan jika salah satu drive gagal. Saya belum menemukan HOWTO cara melakukannya. Pemasang desktop tidak mendukung RAID. Jawaban atas pertanyaan ini hampir berhasil tetapi membutuhkan beberapa disk USB GRUB shell / rescue dan pengaturan UEFI. Adakah yang mengetahui prosedur yang bekerja tanpa bagian ajaib?

Niclas Börlin
sumber

Jawaban:

18

Dengan bantuan dari Bagaimana cara menginstal server Ubuntu dengan UEFI dan RAID1 + LVM , RAID disiapkan di Ubuntu 18.04 , dan dukungan RAID di Ubuntu 18.04 Desktop installer? dan Bagaimana menyingkirkan "pemindaian sistem file btrfs" saat start-up? , Saya berhasil menyusun HOWTO yang berfungsi menggunakan perintah linux saja.

Pendeknya

  1. Unduh penginstal server alternatif.
  2. Instal dengan partisi manual, EFI + RAID dan LVM pada partisi RAID.
  3. Klon partisi EFI dari partisi yang diinstal ke drive lain.
  4. Instal partisi EFI kedua ke rantai boot UEFI.
  5. Untuk menghindari menunggu lama saat boot jika drive rusak, hapus btrfsskrip boot.

Secara terperinci

1. Unduh penginstal

2. Instal dengan partisi manual

  • Selama menginstal, pada Partition diskslangkah, pilih Manual.
  • Jika disk berisi partisi apa pun, hapus partisi tersebut.
    • Jika ada volume logis pada drive Anda, pilih Configure the Logical Volume Manager.
      • Pilih Delete logical volumesampai semua volume telah dihapus.
      • Pilih Delete volume groupsampai semua grup volume telah dihapus.
    • Jika ada perangkat RAID, pilih Configure software RAID.
      • Pilih Delete MD devicesampai semua perangkat MD telah dihapus.
    • Hapus setiap partisi pada drive fisik dengan memilihnya dan memilih Delete the partition.
  • Buat partisi fisik
    • Pada setiap drive, membuat partisi 512MB (saya sudah melihat orang lain menggunakan 128MB) pada awal disk, Gunakan sebagai: EFI System Partition.
    • Pada setiap drive, membuat partisi kedua dengan ukuran 'max', Gunakan sebagai: Physical Volume for RAID.
  • Atur RAID
    • Pilih Configure software RAID.
    • Pilih Create MD device, ketik RAID1, 2 disk aktif, 0 disk cadang, dan pilih /dev/sda2dan /dev/sdb2perangkat.
  • Siapkan LVM
    • Pilih Configure the Logical Volume Manager.
    • Buat grup volume vgpada /dev/md0perangkat.
    • Buat volume logis, mis
      • swap pada 16G
      • root pada 35G
      • tmp pada 10G
      • var pada 5G
      • home pada 200G
  • Atur cara menggunakan partisi logis
    • Untuk swappartisi, pilih Use as: swap.
    • Untuk partisi lain, pilih Use as: ext4dengan tepat mount point ( /, /tmp, /var, /home, masing-masing).
  • Pilih Finish partitioning and write changes to disk.
  • Biarkan program instalasi selesai dan reboot.

Jika Anda menginstal ulang pada drive yang sebelumnya memiliki konfigurasi RAID, langkah pembuatan RAID di atas mungkin gagal dan Anda tidak pernah mendapatkan mdperangkat. Dalam hal ini, Anda mungkin harus membuat tongkat USB Live Ubuntu, boot ke dalamnya, jalankan gparted untuk menghapus semua tabel partisi Anda, sebelum Anda memulai kembali HOWTO ini.

3. Periksa sistem

  • Periksa partisi EFI mana yang telah dipasang. Kemungkinan besar /dev/sda1.

    mount | grep boot

  • Periksa status RAID. Kemungkinan besar sinkronisasi.

    cat / proc / mdstat

4. Klon partisi EFI

EFI yang di-boot seharusnya sudah diinstal /dev/sda1. Karena partisi itu tidak dicerminkan melalui sistem RAID, kita perlu mengkloningnya.

sudo dd if=/dev/sda1 of=/dev/sdb1

5. Masukkan drive kedua ke rantai boot

Langkah ini mungkin tidak diperlukan, karena jika salah satu drive mati, sistem harus mem-boot dari partisi EFI (identik). Namun, tampaknya bijaksana untuk memastikan bahwa kami dapat mem-boot dari salah satu disk.

  • Jalankan efibootmgr -vdan perhatikan nama file untuk ubuntuentri boot. Pada instal saya itu \EFI\ubuntu\shimx64.efi.
  • Lari sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l \EFI\ubuntu\shimx64.efi. Tergantung pada cangkang Anda, Anda mungkin harus melarikan diri dari garis miring terbalik.
  • Verifikasi dengan efibootmgr -vbahwa Anda memiliki nama file yang sama untuk ubuntudan ubuntu2booting item dan bahwa mereka adalah dua pertama dalam urutan boot.
  • Sekarang sistem harus mem-boot bahkan jika salah satu drive gagal!

7. Tunggu

Jika Anda ingin mencoba untuk secara fisik menghapus atau menonaktifkan drive apa pun untuk menguji instalasi Anda, Anda harus terlebih dahulu menunggu sampai sinkronisasi RAID selesai! Pantau kemajuan dengan cat /proc/mdstatNamun, Anda dapat melakukan langkah 8 di bawah sambil menunggu.

8. Hapus BTRFS

Jika satu drive gagal (setelah sinkronisasi selesai), sistem akan tetap bisa boot. Namun, urutan booting akan menghabiskan banyak waktu mencari sistem file btrfs. Untuk menghapus menunggu yang tidak perlu itu, jalankan

sudo apt-get purge btrfs-progs

Ini harus menghapus btrfs-progs, btrfs-toolsdan ubuntu-server. Paket terakhir hanyalah paket meta, jadi jika tidak ada lagi paket terdaftar untuk dihapus, Anda harusnya ok.

9. Instal versi desktop

Jalankan sudo apt install ubuntu-desktopuntuk menginstal versi desktop. Setelah itu, sinkronisasi mungkin dilakukan dan sistem Anda dikonfigurasikan dan harus selamat dari kegagalan disk!

10. Perbarui partisi EFI setelah pembaruan grub-efi-amd64

Ketika paket grub-efi-amd64diperbarui, file pada partisi EFI (terpasang di /boot/efi) dapat berubah. Dalam hal itu, pembaruan harus dikloning secara manual ke partisi mirror. Untungnya, Anda harus mendapatkan peringatan dari manajer pembaruan yang grub-efi-amd64akan diperbarui, sehingga Anda tidak perlu memeriksa setelah setiap pembaruan.

10.1 Cari tahu sumber klon, cara cepat

Jika Anda belum memulai ulang setelah pembaruan, gunakan

mount | grep boot

untuk mengetahui partisi EFI apa yang dipasang. Partisi itu, biasanya /dev/sdb1, harus digunakan sebagai sumber klon.

10.2 Cari tahu sumber klon, cara paranoid

Buat titik mount dan mount kedua partisi:

sudo mkdir /tmp/sda1 /tmp/sdb1
sudo mount /dev/sda1 /tmp/sda1
sudo mount /dev/sdb1 /tmp/sdb1

Temukan cap waktu file terbaru di setiap pohon

sudo find /tmp/sda1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sda1
sudo find /tmp/sdb1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sdb1

Bandingkan cap waktu

cat /tmp/newest.sd* | sort | tail -n 1 | perl -ne 'm,/tmp/(sd[ab]1)/, && print "/dev/$1 is newest.\n"'

Harus mencetak /dev/sdb1 is newest(kemungkinan besar) atau /dev/sda1 is newest. Partisi itu harus digunakan sebagai sumber klon.

Lepaskan partisi sebelum kloning untuk menghindari ketidakkonsistenan cache / partisi.

sudo umount /tmp/sda1 /tmp/sdb1

10.3 Klon

Jika /dev/sdb1itu sumber klon:

sudo dd if=/dev/sdb1 of=/dev/sda1

Jika /dev/sda1itu sumber klon:

sudo dd if=/dev/sda1 of=/dev/sdb1

Selesai!

11. Gotcha mesin virtual

Jika Anda ingin mencoba ini di mesin virtual terlebih dahulu, ada beberapa peringatan: Rupanya, NVRAM yang menyimpan informasi UEFI diingat antara reboot, tetapi tidak di antara siklus shutdown-restart. Jika demikian, Anda mungkin berakhir di konsol UEFI Shell. Perintah-perintah berikut ini akan mem-boot Anda dari mesin Anda /dev/sda1(digunakan FS1:untuk /dev/sdb1):

FS0:
\EFI\ubuntu\grubx64.efi

Solusi pertama di jawaban teratas boot UEFI di virtualbox - Ubuntu 12.04 mungkin juga bermanfaat.

Niclas Börlin
sumber
Bagaimana Anda menggunakan LUKS, untuk set mirror terenkripsi / RAID 1, menghindari enkripsi terjadi dua kali (mis. LUKS duduk di bawah mdadm, sehingga IO terjadi dua kali, tetapi enkripsi itu sendiri terjadi hanya sekali, ini sebenarnya tidak terjadi dengan beberapa pengaturan , seperti yang direkomendasikan untuk ZFS, di mana volume dienkripsi dua kali, sekali per perangkat, secara efektif menduplikasi biaya sisi enkripsi hal-hal). Saya belum dapat menemukan instruksi terbaru pada pengaturan ini.
soze
2
@soze, sayangnya saya tidak punya pengalaman dengan partisi Linux terenkripsi. Saya akan melakukan beberapa trial-and-error di mesin virtual untuk mencari tahu. NB: Saya menambahkan bagian di atas tentang mesin virtual gotcha.
Niclas Börlin
Terima kasih @ NiclasBörlin! Saya kesulitan dengan pembuatan partisi boot di bawah RAID dan LVM, dan jawaban Anda sangat jelas. Terima kasih banyak!
Gui Ambros
Astaga! Bagus!
pileofrogs
Tampaknya ini tidak lagi berfungsi dengan Focal Fossa karena pemasang alternatif hilang. Pemasang Focal tidak memiliki opsi partisi yang disebutkan dan bersikeras pada perangkat karena /bootjika Anda mencoba untuk pergi rute instalasi serangan otomatis.
Dipakai
3

RAID-1 + XFS + UEFI

Saya bisa mendapatkan sekitar 99% dari perjalanan ke sana dengan jawaban @Niclas Börlin, terima kasih!

Saya juga mendapat bantuan dari jawaban berikut:

Berikut adalah cara saya mengacaukan semuanya

  1. Memiliki BIOS dalam mode "Auto", yang memungkinkan USB-Key di-boot TIDAK dalam mode UEFI. Ini menyebabkan Grub tidak dipasang dengan benar. Saya beralih mode ke UEFI-only, reboot dan menghapus semua volume logis, grup raid, dan partisi dan mulai lagi. Saya selanjutnya mencoba menginstal ulang grub pada partisi EFI, yang hanya memperburuk keadaan.
  2. Setelah /bootpartisi berada di XFS. Grub2 yang datang dengan Ubuntu 18.04LTS tampaknya tidak menangani ini. Meskipun itu tidak didokumentasikan di mana pun. Saya membuat /bootpartisi EXT-4 yang terpisah. Perhatikan bahwa ini masih pada volume LVM RAID-1, dan bukan partisi terpisah seperti yang EFI! Banyak jawaban yang lebih tua mengatakan ini tidak mungkin, tetapi tampaknya sekarang. Saya akhirnya mendapatkan grub tetapi mendapatkan kesalahan sistem file yang tidak dikenal (mis. Bagaimana cara memperbaiki "kesalahan: filesystem tidak dikenal. Grub rescue> ) yang memberi saya petunjuk XFS /bootsebagai larangan .
  3. Di suatu tempat di tengah itu saya berakhir dengan grub diinstal tetapi prompt grub kosong, tidak ada menu grub. (mis. https://help.ubuntu.com/community/Grub2/Troubleshooting#Specific_Troubleshooting ). Ini karena /boottidak dapat diakses.

Apa yang berhasil untuk saya

Mulailah dengan jawaban @Niclas Börlin dan ubah beberapa hal kecil.

Tabel Pemisahan

Saya menyukai satu /partisi besar , jadi ini mencerminkan pilihan itu. Perubahan utama adalah /bootpartisi EXT4 bukan XFS.

sda/
          GPT     1M (auto-added)
   sda1 - EFI - 512M
   sda2 - MD0 - 3.5G

sdb/
          GPT     1M (auto-added)
   sdb1 - EFI - 512M
   sdb2 - MD0 - 3.5G

md0/
   vg/
     boot - 1G   - EXT4 /boot
     swap - 16G  - SWAP 
     root - rest - XFS  /

Setelah selesai menginstal saya bisa ddisi sda1untuk sdb2sebagaimana tercantum dalam jawaban lain. Saya juga bisa menambahkan drive kedua ke rantai boot menggunakan efibootmgrseperti yang dijelaskan.

maxslug
sumber
sangat membantu! Saya telah menghadapi masalah yang sama dengan server ubuntu 18.04 + UEFI + RAID1 + LVM. Mengikuti skema partisi Anda telah banyak membantu saya. Terima kasih!
Lucas Aimaretto