UEFI BIOS가있는 시스템이 있습니다. RAID 1 (및 LVM)이있는 데스크톱 버전 인 Ubuntu 18.04를 설치하여 드라이브 중 하나에 장애가 있어도 시스템이 계속 작동합니다. 그 방법에 대한 하우투를 찾지 못했습니다. 데스크탑 설치 프로그램은 RAID를 지원하지 않습니다. 에 대한 대답 이 질문은 거의 작동하지만 일부 GRUB 쉘 / 복구 USB 디스크와 UEFI 설정 마법이 필요합니다. 매직 파트없이 작동하는 절차를 알고있는 사람이 있습니까?
답변
의 도움으로 우분투 UEFI 및 RAID1 + LVM와 서버를 설치하는 방법 , RAID 우분투 18.04에 설치 하고 우분투 18.04 데스크톱 설치에 RAID 지원을? 그리고 어떻게 시작에서 “btrfs를 파일 시스템에 대한 스캐닝”없애? , 나는 리눅스 명령만을 사용하여 작동하는 하우투를 구성했다.
한마디로
- 대체 서버 설치 프로그램을 다운로드하십시오.
- 수동 파티션, EFI + RAID 및 LVM을 RAID 파티션에 설치하십시오.
- 설치된 파티션에서 다른 드라이브로 EFI 파티션을 복제합니다.
- UEFI 부팅 체인에 두 번째 EFI 파티션을 설치하십시오.
- 드라이브가 고장난 경우 부팅하는 동안 오래 기다리지 않으려면
btrfs
부팅 스크립트를 제거하십시오 .
상세히
1. 인스톨러 다운로드
- http://cdimage.ubuntu.com/ubuntu/releases/bionic/release/ 에서 대체 서버 설치 프로그램을 다운로드하십시오 .
- 부팅 가능한 CD 또는 USB를 생성하고 새 시스템을 부팅하십시오.
- 를 선택하십시오
Install Ubuntu Server
.
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
. 다음과 같이 사용하십시오 ..
- 각 드라이브에서 디스크 시작 부분에 512MB 파티션을 생성합니다 (다른 사람이 128MB를 사용하는 것을 보았습니다)
- 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
대해 동일한 파일 이름을 가지고 있고 부팅 순서에서 처음 두 항목 인지 확인하십시오 .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. 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.04 의 UEFI 부팅에 대한 첫 번째 해결책 도 도움이 될 수 있습니다.
답변
RAID-1 + XFS + UEFI
@Niclas Börlin의 답변으로 약 99 %를 얻을 수있었습니다. 감사합니다!
또한 다음 답변에서 도움을 받았습니다.
내가 엉망으로 만드는 방법은 다음과 같습니다.
- BIOS를 “자동”모드로 설정하면 UEFI 모드에서 USB 키를 부팅 할 수 없습니다. 이로 인해 Grub이 올바르게 설치되지 않았습니다. 모드를 UEFI 전용으로 전환하고 모든 논리 볼륨, RAID 그룹 및 파티션을 재부팅하고 삭제 한 후 다시 시작했습니다. 또한 EFI 파티션에 grub을 다시 설치하려고했지만 상황이 더욱 악화되었습니다.
- 갖는
/boot
XFS에 파티션 BE를. Ubuntu 18.04LTS와 함께 제공되는 grub2는 분명히 이것을 처리하지 않습니다. 그것은 어디에도 문서화되어 있지는 않지만. 별도의 EXT-4/boot
파티션을 만들었습니다 . 이것은 여전히 RAID-1 LVM 볼륨에 있으며 EFI와 같은 별도의 파티션은 아닙니다! 많은 오래된 답변에 따르면 이것이 가능하지 않지만 지금은 가능합니다. 나는 grub을 얻었지만 알 수없는 파일 시스템 오류 (예 : “error : unknown filesystem. grub rescue> 수정하는 방법 )를 얻었습니다/boot
. - 그 중간 어딘가에 grub이 설치되었지만 빈 grub 프롬프트가 표시되고 grub 메뉴는 없습니다. (예 : https://help.ubuntu.com/community/Grub2/Troubleshooting#Specific_Troubleshooting ). 이 때문
/boot
접근 할 수없는.
나를 위해 일한 것
@Niclas Börlin의 답변으로 시작하여 몇 가지 사소한 사항을 변경하십시오.
파티션 테이블
하나의 큰 /
파티션을 선호 하므로 선택이 반영됩니다. 주요 변경 사항은 /boot
XFS 파티션 대신 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
의 내용 sda1
에 sdb2
다른 대답에 설명 된대로. 또한 efibootmgr
세부 정보를 사용하여 부트 체인에 두 번째 드라이브를 추가 할 수있었습니다 .