Cara menginstal server Ubuntu dengan UEFI dan RAID1 + LVM

15

Saya biasa menginstal server saya dengan LVM melalui perangkat lunak RAID1, dan grub instal pada MBR dari kedua drive. Sekarang saya memiliki server UEFI, dan mode kompatibilitas (BIOS) sepertinya tidak berfungsi.

Jadi saya pergi cara menginstal dengan UEFI.

Tes pertama, pemasangan drive tunggal berfungsi dengan baik.

Kemudian saya mencoba menginstal dengan RAID1 + LVM. Saya membuat dua drive saya dengan cara yang sama:

  • partisi sistem EFI, 200MB
  • partisi RAID fisik

Kemudian saya melakukan setup: - sebuah RAID 1 menggunakan kedua partisi RAID disk - grup volume LVM pada array RAID 1 - tiga volume logis: /, / home dan swap

Instalasi berjalan, tetapi saat reboot, saya mendapatkan shell grub dan saya macet.

Jadi, mungkinkah grub2-efi bekerja pada LVM melalui RAID1? Apa cara untuk mencapai ini? Apakah ada alternatif bootloader lainnya (pemuatan linux langsung dari EFI ??)? dll ...

alci
sumber

Jawaban:

11

Ok, saya menemukan solusinya dan dapat menjawab pertanyaan saya sendiri.

1) dapatkah saya menggunakan LVM melalui RAID1 pada mesin UEFI?

Iya tentu saja. Dan itu akan dapat mem-boot bahkan jika salah satu dari dua disk gagal.

2) Bagaimana melakukan ini?

Mereka sepertinya adalah bug di installer, jadi hanya dengan menggunakan installer akan menyebabkan kegagalan untuk boot (grub shell).

Berikut ini adalah prosedur kerjanya:

1) secara manual membuat partisi berikut pada masing-masing dari dua disk: - partisi 512MB dengan tipe UEFI sebagai awal disk - partisi tipe RAID setelah itu

2) buat array RAID 1 Anda dengan dua partisi RAID, lalu buat grup volume LVM Anda dengan array itu, dan volume logis Anda (saya buat satu untuk root, satu untuk rumah dan satu untuk swap).

3) biarkan instalasi berjalan, dan reboot. GAGAL! Anda harus mendapatkan shell grub.

4) dimungkinkan untuk boot dari grub shell, tapi saya memilih untuk boot dari disk usb cadangan. Dalam mode penyelamatan, saya membuka shell pada root target saya fs (yaitu yang ada di volume logis root lvm).

5) dapatkan UUID dari partisi root target ini dengan 'blkid'. Catat atau ambil gambar dengan ponsel Anda, Anda akan memerlukannya langkah selanjutnya.

6) pasang partisi sistem EFI ('mount / boot / efi') dan edit file grub.cfg: vi /boot/efi/EFI/ubuntu/grub.cfg Di sini, ganti UUID yang salah dengan yang Anda dapatkan saat itu. 5. Simpan.

7) untuk dapat boot dari disk kedua, salin partisi EFI ke disk kedua ini: dd if = / dev / sda1 dari = / dev / sdb1 (ubah sda atau sdb dengan apa pun yang sesuai dengan konfigurasi Anda).

8) Reboot. Di layar pengaturan UEFI Anda, atur dua partisi EFI sebagai bootable, dan atur urutan boot.

Kamu sudah selesai. Anda dapat menguji, mencabut satu atau yang lain dari disk, itu harus bekerja!

alci
sumber
Terima kasih untuk prosedur terperinci. Bisakah Anda menunjukkan Boot-Info Anda? ( help.ubuntu.com/community/Boot-Info )
LovinBuntu
@LovinBuntu Ini adalah output dari Boot-Info, dimulai dari kunci usb: paste.ubuntu.com/6223137
alci
Saya mendapatkan kegagalan, tetapi tidak bisa mendapatkan cangkang grub.
Peter Lawrey
4
Saya baru saja menyia-nyiakan beberapa hari mencoba mengikuti prosedur yang sama, terutama karena saya bodoh, tetapi kalau-kalau ini bisa membantu orang lain menghindari masalah yang sama, saya akan menyebutkan bahwa Anda perlu memastikan untuk mem-boot live USB menggunakan UEFI daripada BIOS lama. (MB saya, pada pengaturan 'otomatis', lebih disukai untuk boot dalam mode lawas. Saya harus mematikannya - atau secara manual memilih untuk mem-boot opsi EFI - untuk membuat instalasi bekerja.)
Jonathan Y.
1
Menggunakan Ubuntu 16.04.1, ini sepertinya bukan masalah lagi. Saya mengatur Partisi EFI 512MB, SWAP, dan partisi RAID 490GB untuk RAID1, dan pada perangkat md baru saya menginstal server Ubuntu 16.04 sepenuhnya tanpa masalah. Setelah reboot, ia memulai sistem baru dengan sempurna, tidak perlu dipusingkan dengan partisi EFI, fstab dll.
nerdoc
4

Saya melakukan ini sedikit lebih dari setahun yang lalu, dan, walaupun saya memiliki masalah, tidak ada masalah yang tercantum di sini. Saya tidak yakin di mana saya menemukan saran yang saya lakukan pada saat itu, jadi saya akan memposting apa yang saya lakukan di sini.

1) Buat 128MB partisi efi di awal (hanya satu yang akan me-mount, di / boot / efi)

2) Buat 1 GB / boot array RAID1, tanpa LVM

3) Buat array RAID1 besar menggunakan LVM

Memiliki / boot berada di partisi yang terpisah / array RAID1 memecahkan masalah partisi efi tidak dapat menemukan hal-hal yang sesuai.

Dan bagi mereka yang mencari lebih detail, seperti saya pada waktu itu, ini, lebih tepatnya, bagaimana saya telah melakukan pengaturan saya:

6x 3TB Drives

Have 4 RAID arrays:
/dev/md0 = 1GB RAID1 across 3 drives
   --> /boot (no LVM)
/dev/md1 = 500GB RAID1 across 3 drives
   LVM:
      --> /     =  40GB
      --> /var  = 100GB
      --> /home = 335GB
      --> /tmp  =  10GB

/dev/md2 = 500GB RAID1 across 3 drives (for VM's/linux containers)
   LVM:
      --> /lxc/container1 =  50GB
      --> /lxc/container2 =  50GB
      --> /lxc/container3 =  50GB
      --> /lxc/container4 =  50GB
      --> /lxc/extra      = 300GB (for more LXC's later)

/dev/md3 = 10TB RAID6 across 6 drives (for media and such)
   --> /mnt/raid6 (no LVM)


Disks are setup thus:

/sda => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdb => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdc => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdd => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sde => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sdf => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)

Perhatikan hanya satu dari / boot / efi yang benar-benar akan me-mount, dan dua yang kedua adalah klon; Saya melakukan ini karena saya ingin dapat memiliki mesin masih bisa boot ketika kehilangan salah satu dari 3 disk di RAID1. Saya tidak keberatan berjalan dalam mode terdegradasi jika saya masih memiliki redundansi penuh, dan itu memberi saya waktu untuk mengganti drive saat mesin masih menyala.

Juga, jika saya tidak memiliki array RAID1 kedua untuk meletakkan wadah LXC dan pada dasarnya semua database dan semacamnya, / var harus JAUH lebih besar. Memiliki masing-masing LXC sebagai volume logisnya sendiri, bagaimanapun, merupakan solusi yang bagus untuk mencegah satu VM / situs web mengganggu yang lain karena log kesalahan yang tidak terkendali, misalnya ...

Dan catatan terakhir, saya menginstal dari Ubuntu Alternate Install USB dengan 12.04.01 (sebelum 12.04.02 keluar), dan semuanya bekerja dengan sangat baik. Setelah membenturkan kepala saya ke sana selama 72 jam.

Semoga itu bisa membantu seseorang!

jhaagsma
sumber
1
grub2 menangani boot lvm di md secara langsung tanpa partisi / boot, dan setidaknya sudah beberapa tahun.
psusi
@psusi Saya harap Anda benar, instalasi baru saya tidak akan boot dari disk kedua dengan sendirinya. Semua LVM, tidak seperti pengaturan jhaagsma.
sjas
2

Saya punya masalah yang sama, boot efi dengan dua disk dan serangan perangkat lunak

/ dev / sda

  • / dev / sda1 - 200MB partisi efi
  • / dev / sda2 - 20G fisik untuk serangan
  • / dev / hda3 - 980G fisik untuk serangan

/ dev / sdb

  • / dev / sdb1 - 200MB partisi efi
  • / dev / sdb2 - 20G fisik untuk serangan
  • / dev / sdb3 - 980G fisik untuk penyerbuan

Tukar di / dev / md0 (sda2 & sdb2) Rooting di / dev / md1 (sda3 & sdb3)

Jika Anda memasukkan shell penyelamatan grub, boot menggunakan:

set root=(md/1)
linux /boot/vmlinuz-3.8.0-29-generic root=/dev/md1
initrd /boot/initrd.img-3.8.0-29-generic
boot

Setelah itu, unduh file tambalan ini - https://launchpadlibrarian.net/151342031/grub-install.diff (seperti yang dijelaskan di https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1229738 )

cp /usr/sbi/grub-install /usr/sbi/grub-install.backup
patch /usr/sbin/grub-install patch
mount /dev/sda1 /boot/efi
grub-install /dev/sda1
umount /dev/sda1
mount /dev/sdb1 /boot/efi
grub-install /dev/sdb1
reboot
Ljupco
sumber