UEFI BIOS가있는 머신에 RAID 1 및 LVM이있는 Ubuntu 18.04 데스크탑 설치


11

UEFI BIOS가있는 시스템이 있습니다. RAID 1 (및 LVM)이있는 데스크톱 버전 인 Ubuntu 18.04를 설치하여 드라이브 중 하나에 장애가 있어도 시스템이 계속 작동합니다. 그 방법에 대한 하우투를 찾지 못했습니다. 데스크탑 설치 프로그램은 RAID를 지원하지 않습니다. 에 대한 대답 이 질문은 거의 작동하지만 일부 GRUB 쉘 / 복구 USB 디스크와 UEFI 설정 마법이 필요합니다. 매직 파트없이 작동하는 절차를 알고있는 사람이 있습니까?

답변:


18

의 도움으로 우분투 UEFI 및 RAID1 + LVM와 서버를 설치하는 방법 , RAID 우분투 18.04에 설치 하고 우분투 18.04 데스크톱 설치에 RAID 지원을? 그리고 어떻게 시작에서 "btrfs를 파일 시스템에 대한 스캐닝"없애? , 나는 리눅스 명령만을 사용하여 작동하는 하우투를 구성했다.

한마디로

  1. 대체 서버 설치 프로그램을 다운로드하십시오.
  2. 수동 파티션, EFI + RAID 및 LVM을 RAID 파티션에 설치하십시오.
  3. 설치된 파티션에서 다른 드라이브로 EFI 파티션을 복제합니다.
  4. UEFI 부팅 체인에 두 번째 EFI 파티션을 설치하십시오.
  5. 드라이브가 고장난 경우 부팅하는 동안 오래 기다리지 않으려면 btrfs부팅 스크립트를 제거하십시오 .

상세히

1. 인스톨러 다운로드

2. 수동 파티셔닝으로 설치

  • 설치하는 동안 Partition disks단계에서을 선택하십시오 Manual.
  • 디스크에 파티션이 있으면 제거하십시오.
    • 드라이브에 논리 볼륨이 있으면을 선택하십시오 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.
    • 각 드라이브에서 'max'크기의 두 번째 파티션을 작성하십시오 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에서
  • 논리 파티션 사용 방법 설정
    • 를 들어 swap파티션을 선택합니다 Use as: swap.
    • 다른 파티션 선택 Use as: ext4적절한 마운트 포인트 ( /, /tmp, /var, /home, 각각).
  • 를 선택하십시오 Finish partitioning and write changes to disk.
  • 설치 프로그램을 완료하고 재부팅하십시오.

이전에 RAID 구성을 가진 드라이브에 다시 설치하는 경우 위의 RAID 생성 단계가 실패하고 md장치를 얻지 못할 수 있습니다. 이 경우, gparted 이 하우투를 다시 시작하기 전에 우분투 라이브 USB 스틱을 생성하고, 부팅하고, 모든 파티션 테이블을 삭제해야 할 수도 있습니다.

3. 시스템 검사

  • 어떤 EFI 파티션이 마운트되었는지 확인하십시오. 가능성이 높습니다 /dev/sda1.

    마운트 | 그렙 부팅

  • RAID 상태를 확인하십시오. 대부분 동기화 중입니다.

    고양이 / proc / mdstat

4. EFI 파티션 복제

부팅 된 EFI가에 설치되어 있어야합니다 /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대해 동일한 파일 이름을 가지고 있고 부팅 순서에서 처음 두 항목 인지 확인하십시오 .ubuntuubuntu2
  • 이제 드라이브 중 하나라도 실패하더라도 시스템이 부팅됩니다!

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. grub-efi-amd64 업데이트 후 EFI 파티션 업데이트

패키지 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. 가상 머신 문제

가상 머신에서이를 먼저 시도하려면 몇 가지주의 사항이 있습니다. 분명히 UEFI 정보를 보유하는 NVRAM은 재부팅간에 기억되지만 종료-재시작주기 사이에는 기억되지 않습니다. 이 경우 UEFI Shell 콘솔이 종료 될 수 있습니다. 다음 명령에서 컴퓨터로 당신을 부팅합니다 /dev/sda1(사용 FS1:에 대한 /dev/sdb1) :

FS0:
\EFI\ubuntu\grubx64.efi

virtualbox-Ubuntu 12.04UEFI 부팅에 대한 첫 번째 해결책 도 도움이 될 수 있습니다.


암호화 된 미러 세트 / RAID 1에 대해 LUKS를 사용하여 암호화가 두 번 발생하지 않도록하는 방법 (예 : mdadm 아래에있는 LUKS는 IO가 두 번 발생하지만 암호화 자체는 한 번만 발생 함) 실제로 일부 설정에서는 발생하지 않습니다. (예 : 볼륨이 장치 당 한 번씩 두 번 암호화되어 암호화 측면의 비용을 효과적으로 복제하는 ZFS에 권장되는 것과 같은). 이 설정에 대한 최신 지침을 찾지 못했습니다.
soze

2
@soze, 불행히도 암호화 된 Linux 파티션에 대한 경험이 없습니다. 나는 가상 머신에서 시행 착오를 통해 알아낼 것입니다. NB : 가상 머신 문제에 대한 섹션을 추가했습니다.
Niclas Börlin

감사합니다 @ NiclasBörlin! RAID 및 LVM에서 부팅 파티션을 만드는 데 어려움을 겪고 있었고 귀하의 대답은 분명했습니다. 고마워요!
Gui Ambros

이런! 좋은!
pileofrogs

대체 설치 프로그램이 사라지면서 Focal Fossa에서 더 이상 작동하지 않는 것 같습니다. Focal의 설치 프로그램에는 언급 된 파티셔닝 옵션이 없으며 /boot자동 RAID 설치 경로로 이동하려는 경우 장치를 요구 합니다.
wedi

3

RAID-1 + XFS + UEFI

@Niclas Börlin의 답변으로 약 99 %를 얻을 수있었습니다. 감사합니다!

또한 다음 답변에서 도움을 받았습니다.

내가 엉망으로 만드는 방법은 다음과 같습니다.

  1. BIOS를 "자동"모드로 설정하면 UEFI 모드에서 USB 키를 부팅 할 수 없습니다. 이로 인해 Grub이 올바르게 설치되지 않았습니다. 모드를 UEFI 전용으로 전환하고 모든 논리 볼륨, RAID 그룹 및 파티션을 재부팅하고 삭제 한 후 다시 시작했습니다. 또한 EFI 파티션에 grub을 다시 설치하려고했지만 상황이 더욱 악화되었습니다.
  2. 갖는 /bootXFS에 파티션 BE를. Ubuntu 18.04LTS와 함께 제공되는 grub2는 분명히 이것을 처리하지 않습니다. 그것은 어디에도 문서화되어 있지는 않지만. 별도의 EXT-4 /boot파티션을 만들었습니다 . 이것은 여전히 ​​RAID-1 LVM 볼륨에 있으며 EFI와 같은 별도의 파티션은 아닙니다! 많은 오래된 답변에 따르면 이것이 가능하지 않지만 지금은 가능합니다. 나는 grub을 얻었지만 알 수없는 파일 시스템 오류 (예 : "error : unknown filesystem. grub rescue> 수정하는 방법 )를 얻었습니다 /boot.
  3. 그 중간 어딘가에 grub이 설치되었지만 빈 grub 프롬프트가 표시되고 grub 메뉴는 없습니다. (예 : https://help.ubuntu.com/community/Grub2/Troubleshooting#Specific_Troubleshooting ). 이 때문 /boot접근 할 수없는.

나를 위해 일한 것

@Niclas Börlin의 답변으로 시작하여 몇 가지 사소한 사항을 변경하십시오.

파티션 테이블

하나의 큰 /파티션을 선호 하므로 선택이 반영됩니다. 주요 변경 사항은 /bootXFS 파티션 대신 EXT4 파티션입니다.

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의 내용 sda1sdb2다른 대답에 설명 된대로. 또한 efibootmgr세부 정보를 사용하여 부트 체인에 두 번째 드라이브를 추가 할 수있었습니다 .


매우 도움이되었습니다! 우분투 서버 18.04 + UEFI + RAID1 + LVM과 동일한 문제에 직면했습니다. 파티션 구성표를 따르면 많은 도움이되었습니다. 감사!
Lucas Aimaretto 21
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.