ติดตั้ง Ubuntu 18.04 เดสก์ท็อปพร้อม RAID 1 และ LVM บนเครื่องที่มี UEFI BIOS


11

ฉันมีเครื่องที่ใช้ UEFI BIOS ฉันต้องการติดตั้ง Ubuntu 18.04 เวอร์ชันเดสก์ท็อปที่มี RAID 1 (และ LVM) ดังนั้นระบบของฉันจะยังคงทำงานต่อไปแม้ว่าจะมีไดรฟ์ตัวใดตัวหนึ่งทำงานล้มเหลว ฉันไม่พบวิธีการทำเช่นนั้น โปรแกรมติดตั้งเดสก์ท็อปไม่รองรับ RAID คำตอบสำหรับคำถามนี้ใช้ได้เกือบ แต่ต้องใช้ดิสก์ GRUB shell / rescue บางตัวและการตั้งค่า UEFI มีใครทราบถึงขั้นตอนการทำงานที่ไม่มีชิ้นส่วนเวทมนต์หรือไม่

คำตอบ:


18

ด้วยความช่วยเหลือจากวิธีการติดตั้งเซิร์ฟเวอร์อูบุนตูกับ UEFI และ RAID1 + LVM , RAID จัดตั้งขึ้นใน Ubuntu 18.04และสนับสนุน RAID ใน Ubuntu 18.04 ติดตั้งสก์ท็อป? และวิธีกำจัด "สแกนหา btrfs ระบบไฟล์" เมื่อเริ่มต้น? ฉันจัดการเพื่อรวบรวม HOWTO ที่ทำงานโดยใช้คำสั่ง linux เท่านั้น

ในระยะสั้น

  1. ดาวน์โหลดตัวติดตั้งเซิร์ฟเวอร์สำรอง
  2. ติดตั้งด้วยการแบ่งพาร์ติชันด้วยตนเอง, EFI + RAID และ LVM บนพาร์ติชัน RAID
  3. คัดลอกพาร์ติชัน EFI จากพาร์ติชันที่ติดตั้งไปยังไดรฟ์อื่น
  4. ติดตั้งพาร์ติชัน EFI ที่สองในห่วงโซ่การบูต UEFI
  5. เพื่อหลีกเลี่ยงการรอเป็นเวลานานในระหว่างการบู๊ตในกรณีที่ไดรฟ์แตกให้นำbtrfsสคริปต์การบูตออก

ในรายละเอียด

1. ดาวน์โหลดตัวติดตั้ง

  • ดาวน์โหลดตัวติดตั้งเซิร์ฟเวอร์สำรองจาก http://cdimage.ubuntu.com/ubuntu/releases/bionic/release/
  • สร้างซีดีหรือ USB ที่สามารถบู๊ตได้และบู๊ตเครื่องใหม่จากมัน
  • Install Ubuntu Serverเลือก

2. ติดตั้งด้วยการแบ่งพาร์ติชันด้วยตนเอง

  • ในระหว่างการติดตั้งในขั้นตอนเลือกPartition disksManual
  • หากดิสก์มีพาร์ติชันใด ๆ ให้ลบออก
    • หากปริมาณตรรกะใด ๆ Configure the Logical Volume Managerที่มีอยู่ในไดรฟ์ของคุณเลือก
      • เลือกDelete logical volumeจนกว่าจะลบโวลุ่มทั้งหมด
      • เลือกDelete volume groupจนกว่ากลุ่มวอลุ่มทั้งหมดจะถูกลบ
    • หากอุปกรณ์ RAID ใด ๆ Configure software RAIDที่เป็นปัจจุบันให้เลือก
      • เลือกDelete MD deviceจนกว่าอุปกรณ์ MD ทั้งหมดจะถูกลบ
    • Delete the partitionลบพาร์ติชันบนไดรฟ์ทุกทางกายภาพโดยการเลือกพวกเขาและการเลือก
  • สร้างฟิสิคัลพาร์ติชั่น
    • ในแต่ละไดรฟ์สร้างพาร์ทิชัน 512MB (ที่ผมเคยเห็นคนอื่นใช้ 128MB) ที่จุดเริ่มต้นของดิสก์, EFI System Partitionใช้เป็น:
    • ในแต่ละไดรฟ์สร้างพาร์ทิชันที่สองกับ 'สูงสุด' Physical Volume for RAIDขนาดใช้เป็น:
  • ตั้งค่า RAID
    • Configure software RAIDเลือก
    • เลือกCreate MD device, พิมพ์RAID1, ดิสก์ที่ใช้งานอยู่ 2 ดิสก์, ดิสก์สำรอง 0 แผ่นและเลือก/dev/sda2และ/dev/sdb2อุปกรณ์
  • ตั้งค่า LVM
    • Configure the Logical Volume Managerเลือก
    • สร้างกลุ่มวอลุ่มvgบน/dev/md0อุปกรณ์
    • สร้างโลจิคัลวอลุ่มเช่น
      • swap ที่ 16G
      • root ที่ 35G
      • tmp ที่ 10G
      • var ที่ 5G
      • home ที่ 200G
  • ตั้งค่าวิธีใช้โลจิคัลพาร์ติชัน
    • สำหรับพาร์ทิชันที่เลือกswapUse as: swap
    • สำหรับพาร์ทิชันอื่น ๆ เลือกUse as: ext4ที่เหมาะสมกับจุดเชื่อมต่อ ( /, /tmp, /var, /homeตามลำดับ)
  • Finish partitioning and write changes to diskเลือก
  • อนุญาตให้โปรแกรมติดตั้งเสร็จสิ้นและรีบูต

หากคุณติดตั้งใหม่บนไดรฟ์ที่ก่อนหน้านี้มีการกำหนดค่า RAID ขั้นตอนการสร้าง RAID ข้างต้นอาจล้มเหลวและคุณไม่เคยได้รับmdอุปกรณ์ ในกรณีดังกล่าวคุณอาจต้องสร้าง Ubuntu Live USB stick จากนั้นบูตgparted เพื่อล้างตารางพาร์ติชันทั้งหมดก่อนที่จะเริ่ม HOWTO นี้อีกครั้ง

3. ตรวจสอบระบบ

  • ตรวจสอบว่าได้ติดตั้งพาร์ติชัน EFI ใด /dev/sda1ส่วนใหญ่มีแนวโน้ม

    ติดตั้ง | บูต grep

  • ตรวจสอบสถานะ RAID เป็นไปได้ว่ามันกำลังซิงโครไนซ์

    cat / proc / mdstat

4. โคลนพาร์ติชัน EFI

EFI bootloaded /dev/sda1ควรได้รับการติดตั้งบน เนื่องจากพาร์ติชั่นนั้นไม่ได้ทำการมิรเรอร์ผ่านระบบ RAID เราจำเป็นต้องทำการโคลน

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

5. ใส่ไดรฟ์ที่สองลงในเชนการบูต

ขั้นตอนนี้อาจไม่จำเป็นเนื่องจากถ้าไดรฟ์ตัวใดตัวหนึ่งตายระบบควรบูตจากพาร์ติชัน EFI (เหมือนกัน) อย่างไรก็ตามดูเหมือนว่ารอบคอบเพื่อให้แน่ใจว่าเราสามารถบูตจากดิสก์ใดก็ได้

  • เรียกใช้efibootmgr -vและสังเกตเห็นชื่อไฟล์สำหรับubuntuรายการบูต \EFI\ubuntu\shimx64.efiเมื่อวันที่ติดตั้งของฉันมันเป็น
  • sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l \EFI\ubuntu\shimx64.efiวิ่ง คุณอาจต้องหลบหนีจากแบ็กสแลชขึ้นอยู่กับเปลือกของคุณ
  • ตรวจสอบกับefibootmgr -vว่าคุณมีชื่อไฟล์เหมือนกันสำหรับubuntuและubuntu2รายการบูตและว่าพวกเขาเป็นสองคนแรกในลำดับการบูต
  • ตอนนี้ระบบควรบู๊ตแม้ว่าไดรฟ์ตัวใดตัวหนึ่งล้มเหลว!

7. รอ

หากคุณต้องการลองลบหรือปิดการใช้งานไดรฟ์ใด ๆ เพื่อทดสอบการติดตั้งคุณต้องรอจนกว่าการซิงโครไนซ์ RAID จะเสร็จสิ้น! ติดตามความคืบหน้าด้วยcat /proc/mdstatอย่างไรก็ตามคุณอาจดำเนินการตามขั้นตอนที่ 8 ด้านล่างขณะรอ

8. ลบ BTRFS

หากหนึ่งไดรฟ์ล้มเหลว (หลังจากการซิงโครไนซ์เสร็จสิ้น) ระบบจะยังคงบู๊ต อย่างไรก็ตามลำดับการบู๊ตจะใช้เวลานานในการค้นหาระบบไฟล์ btrfs หากต้องการลบการรอที่ไม่จำเป็นออกให้เรียกใช้

sudo apt-get purge btrfs-progs

นี้ควรลบbtrfs-progs, และbtrfs-tools ubuntu-serverแพ็คเกจสุดท้ายเป็นเพียงเมตาแพ็กเกจดังนั้นหากไม่มีแพ็คเกจอื่นอยู่ในรายการเพื่อนำออกคุณควรจะโอเค

9. ติดตั้งเวอร์ชันเดสก์ท็อป

รันsudo apt install ubuntu-desktopเพื่อติดตั้งเวอร์ชันเดสก์ท็อป หลังจากนั้นอาจมีการซิงโครไนซ์และระบบของคุณได้รับการกำหนดค่าและควรอยู่รอดจากความล้มเหลวของดิสก์!

10. อัพเดทพาร์ติชัน EFI หลังจากอัพเดต grub-efi-amd64

เมื่อgrub-efi-amd64อัปเดตแพ็คเกจแล้วไฟล์ในพาร์ติชัน EFI (เมาท์ที่/boot/efi) อาจเปลี่ยนแปลงได้ ในกรณีนั้นการอัพเดตจะต้องทำการโคลนแบบแมนนวลไปยังพาร์ติชั่นมิเรอร์ โชคดีที่คุณควรได้รับคำเตือนจากตัวจัดการอัปเดตที่grub-efi-amd64กำลังจะได้รับการอัปเดตดังนั้นคุณไม่จำเป็นต้องตรวจสอบทุกครั้งหลังการอัปเดต

10.1 ค้นหาแหล่งที่มาของโคลนอย่างรวดเร็ว

หากคุณยังไม่ได้บูตเครื่องใหม่หลังจากการอัพเดทให้ใช้

mount | grep boot

เพื่อค้นหาพาร์ติชัน EFI ที่ติดตั้งอยู่ โดยทั่วไปพาร์ติชันนั้น/dev/sdb1ควรใช้เป็นแหล่งโคลน

10.2 ค้นหาแหล่งที่มาของโคลน, หวาดระแวง

สร้างจุดเมานท์และเมานต์พาร์ติชันทั้งสอง:

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

ค้นหาการประทับเวลาของไฟล์ใหม่ล่าสุดในแต่ละต้น

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

เปรียบเทียบการประทับเวลา

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

ควรพิมพ์/dev/sdb1 is newest(ส่วนใหญ่) /dev/sda1 is newestหรือ พาร์ติชันนั้นควรใช้เป็นแหล่งโคลน

ถอนติดตั้งพาร์ติชันก่อนการโคลนเพื่อหลีกเลี่ยงความไม่สอดคล้องกันของแคช / พาร์ติชัน

sudo umount /tmp/sda1 /tmp/sdb1

10.3 โคลน

ถ้า/dev/sdb1เป็นแหล่งโคลน:

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

ถ้า/dev/sda1เป็นแหล่งโคลน:

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

ทำ!

11. เครื่องเสมือน gotchas

หากคุณต้องการลองใช้เครื่องเสมือนก่อนมีข้อ จำกัด บางประการ: เห็นได้ชัดว่า NVRAM ที่เก็บข้อมูล UEFI จะถูกจดจำระหว่างการรีบูต แต่ไม่ใช่ระหว่างรอบการรีสตาร์ท ในกรณีดังกล่าวคุณอาจสิ้นสุดที่คอนโซล UEFI Shell คำสั่งต่อไปนี้ควรบูตคุณเข้าสู่เครื่องจาก/dev/sda1(ใช้FS1:สำหรับ/dev/sdb1):

FS0:
\EFI\ubuntu\grubx64.efi

ทางออกแรกในคำตอบสูงสุดของการบูต UEFI ในกล่องเสมือน - Ubuntu 12.04อาจเป็นประโยชน์


คุณจะใช้ LUKS อย่างไรสำหรับชุดมิเรอร์ที่เข้ารหัส / RAID 1 หลีกเลี่ยงการเข้ารหัสที่เกิดขึ้นสองครั้ง (เช่น LUKS นั่งอยู่ภายใต้ mdadm เพื่อให้ IO เกิดขึ้นสองครั้ง แต่การเข้ารหัสจะเกิดขึ้นเพียงครั้งเดียว เช่นที่แนะนำสำหรับ ZFS โดยที่ปริมาณจะถูกเข้ารหัสสองครั้งหนึ่งครั้งต่ออุปกรณ์ทำให้เกิดต้นทุนด้านการเข้ารหัสที่ซ้ำกันได้อย่างมีประสิทธิภาพ) ฉันไม่สามารถหาคำแนะนำล่าสุดเกี่ยวกับการตั้งค่านี้ได้
soze

2
@ Soze โชคไม่ดีที่ฉันไม่มีประสบการณ์กับพาร์ติชัน Linux ที่เข้ารหัสแล้ว ฉันจะลองผิดลองถูกในเครื่องเสมือนเพื่อค้นหา หมายเหตุ: ฉันเพิ่มส่วนด้านบนเกี่ยวกับเครื่องเสมือน gotchas
Niclas Börlin

ขอบคุณ @ NiclasBörlin! ฉันดิ้นรนกับการสร้างพาร์ติชันสำหรับบูตภายใต้ RAID และ LVM และคำตอบของคุณก็ชัดเจน ขอบคุณมาก!
Gui Ambros

วัวศักดิ์สิทธิ์! ดี!
pileofrogs

ดูเหมือนว่าสิ่งนี้จะไม่ทำงานกับ Focal Fossa อีกต่อไปเนื่องจากตัวติดตั้งสำรองหายไป โปรแกรมติดตั้งของ Focal ไม่มีตัวเลือกการแบ่งพาร์ติชันที่กล่าวถึงและยืนยันในอุปกรณ์สำหรับ/bootถ้าคุณพยายามไปเส้นทางการติดตั้งการโจมตีอัตโนมัติ
WEDI

3

RAID-1 + XFS + UEFI

ฉันสามารถรับประมาณ 99% ของวิธีการที่นั่นด้วยคำตอบของ @Niclas Börlinขอบคุณ!

ฉันดึงความช่วยเหลือจากคำตอบต่อไปนี้:

นี่คือวิธีที่ฉันทำสิ่งที่สับสน

  1. มี BIOS ในโหมด "อัตโนมัติ" ซึ่งอนุญาตให้บูต USB-Key ไม่ได้ในโหมด UEFI สิ่งนี้ทำให้ด้วงไม่สามารถติดตั้งได้อย่างถูกต้อง ฉันเปลี่ยนโหมดเป็น UEFI เท่านั้นรีบูตและลบโลจิคัลวอลุ่มทั้งหมดกลุ่มการโจมตีและพาร์ติชันและเริ่มต้นใหม่ ฉันพยายามเพิ่มเติมที่จะติดตั้งด้วงใหม่บนพาร์ติชัน EFI ซึ่งทำให้สิ่งต่าง ๆ แย่ลงเท่านั้น
  2. การมี/bootพาร์ติชันอยู่บน XFS Grub2 ที่มาพร้อมกับ Ubuntu 18.04LTS เห็นได้ชัดว่าไม่ได้จัดการเรื่องนี้ แม้ว่าจะไม่ได้บันทึกไว้ที่ใดก็ตาม ฉันสร้าง/bootพาร์ติชันEXT-4 แยกต่างหาก โปรดทราบว่านี่ยังคงเป็นโวลุ่ม RAID-1 LVM และไม่แยกพาร์ติชันอย่าง EFI! คำตอบที่เก่ากว่าจำนวนมากบอกว่ามันเป็นไปไม่ได้ แต่ตอนนี้ดูเหมือนว่าจะเป็นไปได้ ฉันได้รับด้วง แต่ได้รับข้อผิดพลาดของระบบไฟล์ที่ไม่รู้จัก (เช่นวิธีการแก้ไข "ข้อผิดพลาด: ระบบไฟล์ที่ไม่รู้จัก grub rescue> ) ที่ทำให้ฉันรู้ว่า XFS /bootเป็นแบบไม่ไป
  3. อยู่ตรงกลางของที่ฉันลงเอยด้วยการติดตั้งด้วง แต่พรอมต์ว่างเปล่าไม่มีเมนูด้วง (เช่นhttps://help.ubuntu.com/community/Grub2/Troubleshooting#Specific_Troubleshooting ) นี่เป็นเพราะ/bootไม่สามารถเข้าถึงได้

อะไรที่เหมาะกับฉัน

เริ่มต้นด้วยคำตอบของ @Niclas Börlinและเปลี่ยนแปลงสิ่งเล็กน้อย

ตารางพาร์ติชั่น

ฉันชอบ/พาร์ติชันขนาดใหญ่หนึ่งรายการดังนั้นนี่จึงสะท้อนตัวเลือกนั้น การเปลี่ยนแปลงหลักคือ/bootพาร์ติชันEXT4 แทน 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  /

หลังจากที่เสร็จสิ้นการติดตั้งก็สามารถที่จะddเนื้อหาของsda1การsdb2ตามรายละเอียดในคำตอบอื่น ๆ ฉันยังสามารถเพิ่มไดรฟ์ที่สองในห่วงโซ่การบูตโดยใช้efibootmgrรายละเอียด


มีประโยชน์มาก! ฉันได้พบปัญหาเดียวกันกับเซิร์ฟเวอร์ ubuntu 18.04 + UEFI + RAID1 + LVM การทำตามรูปแบบพาร์ติชันของคุณช่วยฉันได้มาก ขอบคุณ!
ลูคัส Aimaretto
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.