UEFI / GPT 시스템에서 듀얼 부팅 RAID 1 파티션으로 Ubuntu 14.04 / 16.04 64 비트를 설치하는 방법은 무엇입니까?


22

업데이트 : 아래 질문과 답변은 우분투 16.04에도 적용됩니다

듀얼 SSD가 장착 된 컴퓨터가 있고 다른 디스크에 Win (7)이 사전 설치되어 있습니다. 사전 설치는 (U) EFI / GPT 부팅을 사용합니다. SSD의 RAID1 루트 파티션에 Ubuntu 14.04 64 비트 데스크톱을 설치하고 여전히 Win7 시스템을 이중 부팅 할 수 있습니다. 이것이 가능한가?

데스크탑 설치 프로그램을 사용한 이 안내서 는 MBR 부팅을 암시 적으로 가정하기 때문에 작동하지 않았습니다. 아마도 같은 이유로 서버 배포판을 설치 하지 않았습니다 .

답변:


36

업데이트 : 아래 설명이 Ubuntu 16.04에서도 작동 함을 확인했습니다. 다른 사용자는 17.10 및 18.04.1 작업을보고했습니다.

참고 :이 하우투는 LVM을 제공하지 않습니다. LVM도 원한다면 UEFI BIOS가있는 머신에 RAID 1 및 LVM이있는 Ubuntu 18.04 데스크탑을 설치하십시오 .

며칠간의 노력 끝에 이제 시스템이 작동합니다! 간단히 말해서 솔루션은 다음 단계로 구성되었습니다.

  1. Ubuntu Live CD / USB를 사용하여 부팅하십시오.
  2. 필요에 따라 SSD를 분할합니다.
  3. 누락 된 패키지 (mdadm 및 grub-efi)를 설치하십시오.
  4. RAID 파티션을 작성하십시오.
  5. 유비 쿼티 설치 프로그램을 실행하십시오 (그러나 새 시스템으로 부팅하지 마십시오).
  6. 설치된 시스템 (initramfs)을 패치하여 RAID 루트에서 부팅 할 수 있도록합니다.
  7. GRUB을 사용하여 첫 번째 SSD의 EFI 파티션을 채우고 EFI 부팅 체인에 설치하십시오.
  8. EFI 파티션을 다른 SSD에 복제 하고 부트 체인에 설치하십시오.
  9. 끝난! 이제 시스템에 RAID 1 중복성이 있습니다. UEFI 파티션은 변경되지 않으므로 커널 업데이트 후에는 특별한 조치를 취할 필요가 없습니다.

솔루션 6 단계의 핵심 구성 요소는 부팅 순서가 지연되어 SSD 중 하나가없는 경우 GRUB 프롬프트 (키보드없이!)를 제각각 덤프했습니다.

자세한 하우투

1. 부팅

USB 스틱에서 EFI를 사용하여 부팅하십시오. 시스템에 따라 정확히 어떻게 달라질 수 있습니다. 설치하지 않고 우분투 체험을 선택 하십시오 .

xterm를 들어 아래 명령을 실행하려면 터미널 에뮬레이터를 시작하십시오 .

1.1 다른 컴퓨터에서 로그인

이것을 시도하는 동안 이미 완전히 구성된 다른 컴퓨터에서 로그인하는 것이 더 쉽다는 것을 알았습니다. 이렇게 단순화 된 잘라 내기 및 붙여 넣기 명령 등을 수행하려면 다음을 수행하여 ssh를 통해 로그인 할 수 있습니다.

구성 할 컴퓨터에서 openssh 서버를 설치하십시오.

sudo apt-get install openssh-server

비밀번호를 변경하십시오. 사용자의 기본 비밀번호 ubuntu는 비어 있습니다. 중간 강도의 비밀번호를 선택할 수 있습니다. 새 컴퓨터를 재부팅하자마자 잊어 버리게됩니다.

passwd

이제 다른 컴퓨터에서 우분투 라이브 세션에 로그인 할 수 있습니다. 아래 지침은 Linux 용입니다.

ssh -l ubuntu <your-new-computer>

의심스러운 중간자 공격에 대한 경고가 표시되면 새 컴퓨터를 식별하는 데 사용되는 ssh 키를 지워야합니다. openssh-server설치 될 때마다 새 서버 키를 생성 하기 때문 입니다. 사용하는 명령은 일반적으로 인쇄되며 다음과 같아야합니다

ssh-keygen -f <path-to-.ssh/known_hosts> -R <your-new-computer>

해당 명령을 실행 한 후에는 우분투 라이브 세션에 로그인 할 수 있어야합니다.

2. 파티션 디스크

오래된 파티션과 부팅 블록을 지우십시오. 경고! 이것은 디스크의 데이터를 파괴합니다!

sudo sgdisk -z /dev/sda
sudo sgdisk -z /dev/sdb

가장 작은 드라이브에 새 파티션을 작성하십시오 : ESP의 경우 100M, RAID SWAP의 경우 32G, RAID 루트의 나머지 파티션. sda 드라이브가 가장 작은 경우 섹션 2.1을 따르십시오. 그렇지 않으면 섹션 2.2를 따르십시오.

2.1 파티션 테이블 생성 (/ dev / sda가 더 작음)

다음 단계를 수행하십시오.

sudo sgdisk -n 1:0:+100M -t 1:ef00 -c 1:"EFI System" /dev/sda
sudo sgdisk -n 2:0:+32G -t 2:fd00 -c 2:"Linux RAID" /dev/sda
sudo sgdisk -n 3:0:0 -t 3:fd00 -c 3:"Linux RAID" /dev/sda

파티션 테이블을 다른 디스크에 복사하고 고유 한 UUID를 재생성하십시오 (실제로 sda의 UUID를 재생 성함).

sudo sgdisk /dev/sda -R /dev/sdb -G

2.2 파티션 테이블 생성 (/ dev / sdb가 더 작음)

다음 단계를 수행하십시오.

sudo sgdisk -n 1:0:+100M -t 1:ef00 -c 1:"EFI System" /dev/sdb
sudo sgdisk -n 2:0:+32G -t 2:fd00 -c 2:"Linux RAID" /dev/sdb
sudo sgdisk -n 3:0:0 -t 3:fd00 -c 3:"Linux RAID" /dev/sdb

파티션 테이블을 다른 디스크에 복사하고 고유 한 UUID를 재생성하십시오 (실제로 sdb의 UUID를 재생 성함).

sudo sgdisk /dev/sdb -R /dev/sda -G

2.3 / dev / sda에 FAT32 파일 시스템 생성

EFI 파티션을위한 FAT32 파일 시스템을 만듭니다.

sudo mkfs.fat -F 32 /dev/sda1
mkdir /tmp/sda1
sudo mount /dev/sda1 /tmp/sda1
sudo mkdir /tmp/sda1/EFI
sudo umount /dev/sda1

3. 누락 된 패키지 설치

Ubuntu Live CD에는 두 가지 주요 패키지가 없습니다. grub-efi 및 mdadm. 설치하십시오. (여기서는 grub-efi가 100 % 확실하지는 않지만 향후 설치시 대칭을 유지하려면 가져와야합니다.)

sudo apt-get update
sudo apt-get -y install grub-efi-amd64 # (or grub-efi-amd64-signed)
sudo apt-get -y install mdadm

당신은해야 할 수도 있습니다 grub-efi-amd64-signed대신 grub-efi-amd64당신은 보안 부팅을 사용할 경우. (Alekcz의 코멘트 참조)

4. RAID 파티션 생성

RAID 모드를 성능 저하 모드로 작성하십시오. 장치는 나중에 완료됩니다. 전체 RAID1을 생성하면 ubiquity아래 설치 중에 문제가 발생하는 이유가 무엇인지 잘 모르겠습니다. (마운트 / 마운트 해제? 형식?)

sudo mdadm --create /dev/md0 --bitmap=internal --level=1 --raid-disks=2 /dev/sda2 missing
sudo mdadm --create /dev/md1 --bitmap=internal --level=1 --raid-disks=2 /dev/sda3 missing

RAID 상태를 확인하십시오.

cat /proc/mdstat

Personalities : [raid1] 
md1 : active raid1 sda3[0]
      216269952 blocks super 1.2 [2/1] [U_]
      bitmap: 0/2 pages [0KB], 65536KB chunk

md0 : active raid1 sda2[0]
      33537920 blocks super 1.2 [2/1] [U_]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>

md 장치를 분할하십시오.

sudo sgdisk -z /dev/md0
sudo sgdisk -z /dev/md1
sudo sgdisk -N 1 -t 1:8200 -c 1:"Linux swap" /dev/md0
sudo sgdisk -N 1 -t 1:8300 -c 1:"Linux filesystem" /dev/md1

5. 인스톨러를 실행합니다

어쨌든 실패 할 부트 로더 제외하고 유비 쿼티 설치 프로그램을 실행하십시오 . ( 참고 : ssh를 통해 로그인 한 경우 새 컴퓨터에서 대신 실행할 수 있습니다.)

sudo ubiquity -b

설치 유형으로 다른 항목 을 선택 하고 md1p1유형을 ext4형식, 예 및 마운트 지점으로 수정하십시오 /. md0p1파티션이 자동으로 스왑으로 선택됩니다.

설치가 완료되는 동안 커피 한 잔을 받으십시오.

중요 사항 : 설치가 완료되면 시스템이 아직 부팅 준비가되지 않았으므로 테스트 계속을 선택하십시오 .

RAID 장치를 완료하십시오

대기중인 sdb 파티션을 RAID에 연결하십시오.

sudo mdadm --add /dev/md0 /dev/sdb2
sudo mdadm --add /dev/md1 /dev/sdb3

모든 RAID 장치가 정상인지 확인하고 선택적으로 동기화하십시오.

cat /proc/mdstat

Personalities : [raid1] 
md1 : active raid1 sdb3[1] sda3[0]
      216269952 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  0.2% (465536/216269952)  finish=17.9min speed=200000K/sec
      bitmap: 2/2 pages [8KB], 65536KB chunk

md0 : active raid1 sdb2[1] sda2[0]
      33537920 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>

재부트를 포함하여 동기화 중에 아래 프로세스가 계속 될 수 있습니다.

6. 설치된 시스템 구성

설치 시스템에 chroot를 사용하도록 설정하십시오.

sudo -s
mount /dev/md1p1 /mnt
mount -o bind /dev /mnt/dev
mount -o bind /dev/pts /mnt/dev/pts
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc
cat /etc/resolv.conf >> /mnt/etc/resolv.conf
chroot /mnt

패키지를 구성하고 설치하십시오.

apt-get install -y grub-efi-amd64 # (or grub-efi-amd64-signed; same as in step 3)
apt-get install -y mdadm

md 장치가 여전히 동기화중인 경우 다음과 같은 경고 메시지가 나타날 수 있습니다.

/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..

이것은 정상이며 무시할 수 있습니다 ( 이 질문의 맨 아래에있는 답변 참조 ).

nano /etc/grub.d/10_linux
# change quick_boot and quiet_boot to 0

비활성화 quick_boot하면 Diskfilter 쓰기가 지원되지 않는 버그를 피할 수 있습니다. 비활성화 quiet_boot는 개인 취향에만 해당됩니다.

/etc/mdadm/mdadm.conf를 수정하여 레이블 참조를 제거하십시오 (예 : 변경)

ARRAY /dev/md/0 metadata=1.2 name=ubuntu:0 UUID=f0e36215:7232c9e1:2800002e:e80a5599
ARRAY /dev/md/1 metadata=1.2 name=ubuntu:1 UUID=4b42f85c:46b93d8e:f7ed9920:42ea4623

ARRAY /dev/md/0 UUID=f0e36215:7232c9e1:2800002e:e80a5599
ARRAY /dev/md/1 UUID=4b42f85c:46b93d8e:f7ed9920:42ea4623

이 단계는 불필요 할 수 있지만, 일부 페이지에서는 이름 지정 체계가 불안정 할 수 있으며 (name = ubuntu : 0/1) 이로 인해 부팅 중에 RAID 장치가 완벽하게 조립되지 않을 수 있습니다.

/etc/default/grub읽을 줄 수정

#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

다시 말하지만,이 단계는 불필요 할 수 있지만 눈을 뜨고 부팅하는 것을 선호합니다 ...

6.1. 수면 스크립트 추가

(그것은이 단계가 불필요 할 수 있으며 사용하여 교체 할 수있는 지역 사회에 의해 제안되었다 GRUB_CMDLINE_LINUX="rootdelay=30"에서 /etc/default/grub. 이유는이 HOWTO의 하단에 설명을 위해, 나는 그것이 rootdelay를 사용하는 것보다 더 추악한 경우에도 수면 스크립트와 스틱 제안한다. 따라서, 우리는 정규 프로그램을 계속합니다 ... )

RAID 장치가 안정 될 때까지 기다리는 스크립트를 작성하십시오. 이 지연이 없으면 RAID 어셈블리가 제 시간에 완료되지 않아 루트 마운트에 실패 할 수 있습니다 . 디스크 오류를 시뮬레이트하기 위해 SSD 중 하나를 분리 할 때까지 문제가 나타나지 않았습니다! 사용 가능한 하드웨어 (예 : 느린 외부 USB 디스크 등)에 따라 타이밍을 조정해야 할 수도 있습니다.

다음 코드를 입력하십시오 /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile:

#!/bin/sh
echo
echo "sleeping for 30 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 25 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 20 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 15 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 10 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 5 seconds while udevd and mdadm settle down"
sleep 5
echo "done sleeping"

스크립트를 실행 가능하게 만들고 설치하십시오.

chmod a+x /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile
update-grub
update-initramfs -u

7. 첫 번째 SSD에서 부팅을 활성화합니다

이제 시스템이 거의 준비되었으므로 UEFI 부팅 매개 변수 만 설치하면됩니다.

mount /dev/sda1 /boot/efi
grub-install --boot-directory=/boot --bootloader-id=Ubuntu --target=x86_64-efi --efi-directory=/boot/efi --recheck
update-grub
umount /dev/sda1

부트 로더 /boot/efi/EFI/Ubuntu(일명 EFI/Ubuntuon /dev/sda1)를 설치하고 컴퓨터의 UEFI 부트 체인에 먼저 설치합니다.

8. 두 번째 SSD에서 부팅을 활성화합니다

거의 다 끝났습니다. 이제 sda드라이브 에서 재부팅 할 수 있어야합니다 . 또한 또는 드라이브의 mdadm장애를 처리 할 수 ​​있어야합니다 . 그러나 EFI는 RAID가 아니므로 복제해야합니다 .sdasdb

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

두 번째 드라이브에 부트 로더를 설치하는 것 외에도,이은에 FAT32 파일 시스템의 UUID를 만들 것입니다 sdb1(에 의해보고 된 파티션 blkid)의 일치 sda1/etc/fstab. 그러나 파티션 /dev/sda1/dev/sdb1파티션 의 UUID 는 여전히 다릅니다 . 설치 후 비교 ls -la /dev/disk/by-partuuid | grep sd[ab]1하여 blkid /dev/sd[ab]1직접 확인하십시오.

마지막으로 sdb1파티션을 부팅 순서에 삽입해야합니다 . (참고 : BIOS에 따라이 단계가 불필요 할 수 있습니다. 일부 BIOS에서 자동으로 유효한 ESP 목록을 생성한다는보고를 받았습니다.)

efibootmgr -c -g -d /dev/sdb -p 1 -L "Ubuntu #2" -l '\EFI\ubuntu\grubx64.efi'

테스트하지는 않았지만 ESP on sda과 사이에 고유 레이블 (-L)이 필요할 수 있습니다 sdb.

현재 부팅 순서의 인쇄물이 생성됩니다. 예 :

Timeout: 0 seconds
BootOrder: 0009,0008,0000,0001,0002,000B,0003,0004,0005,0006,0007
Boot0000  Windows Boot Manager
Boot0001  DTO UEFI USB Floppy/CD
Boot0002  DTO UEFI USB Hard Drive
Boot0003* DTO UEFI ATAPI CD-ROM Drive
Boot0004  CD/DVD Drive 
Boot0005  DTO Legacy USB Floppy/CD
Boot0006* Hard Drive
Boot0007* IBA GE Slot 00C8 v1550
Boot0008* Ubuntu
Boot000B  KingstonDT 101 II PMAP
Boot0009* Ubuntu #2

Ubuntu # 2 (sdb) 및 Ubuntu (sda)는 부팅 순서에서 첫 번째입니다.

재부팅

이제 재부팅 할 준비가되었습니다.

exit # from chroot
exit # from sudo -s
sudo reboot

이제 시스템이 Ubuntu로 재부팅되어야합니다 (먼저 Ubuntu Live 설치 미디어를 제거해야 할 수도 있습니다).

부팅 후 다음을 실행할 수 있습니다.

sudo update-grub

Windows 부트 로더를 grub 부트 체인에 연결합니다.

가상 머신 문제

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

FS0:
\EFI\ubuntu\grubx64.efi

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

디스크 장애 시뮬레이션

를 사용하여 RAID 구성 요소 장치의 장애를 시뮬레이션 할 수 있습니다 mdadm. 그러나 부트 항목이 디스크 오류가 지속될 수 있는지 확인하려면 컴퓨터를 종료하고 디스크에서 전원을 분리해야했습니다. 그렇게하는 경우 먼저 md 장치가 동기화되어 있는지 확인하십시오 .

cat /proc/mdstat 

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdb3[2] sda3[0]
      216269952 blocks super 1.2 [2/2] [UU]
      bitmap: 2/2 pages [8KB], 65536KB chunk

md0 : active raid1 sda2[0] sdb2[2]
      33537920 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>

아래 지침에서 sdX는 실패한 장치 (X = a 또는 b)이고 sdY는 ok 장치입니다.

드라이브 분리

컴퓨터를 종료하십시오. 드라이브를 분리하십시오. 재시작. 우분투는 이제 성능 저하 모드에서 RAID 드라이브로 부팅해야합니다. (축하합니다! 이것은 당신이 달성하려는 것입니다!;)

cat /proc/mdstat 

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sda3[0]
      216269952 blocks super 1.2 [2/1] [U_]
      bitmap: 2/2 pages [8KB], 65536KB chunk

md0 : active raid1 sda2[0]
      33537920 blocks super 1.2 [2/1] [U_]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>

고장난 디스크에서 복구

결함이있는 디스크를 교체해야하는 경우 따라야하는 프로세스입니다. 대체물을 에뮬레이션하려면 Ubuntu Live 세션으로 부팅하여 사용할 수 있습니다

dd if=/dev/zero of=/dev/sdX

실제 시스템으로 다시 부팅하기 전에 디스크를 깨끗하게 정리합니다. 위 섹션에서 부팅 / RAID 이중화를 방금 테스트 한 경우이 단계를 건너 뛸 수 있습니다. 그러나 시스템의 전체 부팅 / RAID 중복성을 복구하려면 최소한 아래의 2 단계와 4 단계를 수행해야합니다.

디스크 교체 후 RAID + boot 시스템을 복원하려면 다음 단계가 필요합니다.

  1. 새 드라이브를 분할하십시오.
  2. md 장치에 파티션을 추가하십시오.
  3. 부팅 파티션을 복제하십시오.
  4. 클론에 대한 EFI 레코드를 추가하십시오.

1. 새 드라이브 파티션

정상 드라이브에서 파티션 테이블을 복사하십시오.

sudo sgdisk /dev/sdY -R /dev/sdX

새 드라이브에서 UUID를 다시 랜덤 화하십시오.

sudo sgdisk /dev/sdX -G

2. md 장치에 추가

sudo mdadm --add /dev/md0 /dev/sdX2
sudo mdadm --add /dev/md1 /dev/sdX3

3. 부팅 파티션 복제

정상적인 드라이브에서 ESP를 복제하십시오. (실제로 실수로 복구하는 경우 복구를 가능하게하기 위해 두 ESP의 덤프 투 파일을 먼저 수행하십시오.)

sudo dd if=/dev/sdY1 of=/dev/sdX1

4. 새로 부활 한 디스크를 부팅 순서에 삽입하십시오

클론에 대한 EFI 레코드를 추가하십시오. 필요에 따라 -L 레이블을 수정하십시오.

sudo efibootmgr -c -g -d /dev/sdX -p 1 -L "Ubuntu #2" -l '\EFI\ubuntu\grubx64.efi'

이제 시스템을 재부팅하면 시스템이 정상으로 돌아와야합니다 (RAID 장치는 여전히 동기화 중일 수 있습니다)!

왜 수면 스크립트입니까?

커뮤니티에서 수면 스크립트를 추가하는 것이 불필요 할 수 있으며 GRUB_CMDLINE_LINUX="rootdelay=30"in 을 사용하여 바꿀 수 있다고 제안 /etc/default/grub했습니다 sudo update-grub. 이 제안은 확실히 깨끗하며 디스크 장애 / 교체 시나리오에서 작동합니다. 그러나주의 사항이 있습니다 ...

두 번째 SSD의 연결을 해제 rootdelay=30하고 휴면 스크립트 대신 등으로 다음을 발견했습니다 .
1) 시스템이 "실패한"드라이브없이 성능 저하 모드로 부팅됩니다.
2) 저하되지 않은 부팅 (드라이브 모두 있음)에서는 부팅 시간이 줄어 듭니다. 지연은 두 번째 드라이브가없는 경우에만 인식 할 수 있습니다.

1) 및 2) 두 번째 드라이브를 다시 추가 할 때까지 훌륭하게 들렸습니다. 부팅 할 때 RAID 어레이가 조립에 실패 initramfs하고 수행 할 작업을 몰라도 프롬프트가 표시됩니다. a) Ubuntu Live USB 스틱으로 부팅, b) 설치 mdadm및 c) 수동으로 어레이를 재 조립하여 상황을 복구 할 수 있었지만 어딘가에 엉망이되었습니다. 대신, 수면 스크립트를 사용 하여이 테스트 다시 실행하면 (예, 처음부터 HOWTO를 처음부터 시작했습니다 ...) 시스템 부팅되었습니다. 어레이가 성능 저하 모드에 있었고 /dev/sdb[23]추가 USB 스틱없이 수동으로 파티션을 다시 추가 할 수있었습니다 . 수면 스크립트가 작동하는 이유는 모르지만 rootdelay그렇지 않습니다. 아마도 mdadm동기화되지 않은 두 개의 구성 요소 장치로 인해 혼란 스러울 수 있지만mdadm그것을 처리하도록 설계되었습니다. 어쨌든, 수면 스크립트가 작동하기 때문에 나는 그것을 고집하고 있습니다.

완벽하게 정상적인 RAID 구성 요소 장치를 제거하고 RAID를 성능 저하 모드로 다시 부팅 한 다음 구성 요소 장치를 다시 추가하는 것은 비현실적인 시나리오라고 할 수 있습니다. 현실적인 시나리오는 한 장치가 고장 나서 새로운 장치로 교체 된 것입니다. mdadm혼란 스러울 수있는 기회가 줄어 듭니다 . 나는 그 주장에 동의합니다. 그러나 실제로 일부 하드웨어를 비활성화하지 않는 한 시스템에서 하드웨어 오류를 허용하는 방법을 테스트하는 방법을 모르겠습니다! 그리고 테스트 후 중복 작업 시스템으로 돌아가고 싶습니다. (글쎄, 내가 할 수 있는 다른 컴퓨터에 내 두 번째 SSD를 연결하고 스 와이프를 내가 다시 추가하기 전에, 그러나 그것은 가능하지 않습니다.)

요약 : 내 지식으로는 rootdelay솔루션은 깨끗하고 부팅되지 않은 부팅의 절전 스크립트보다 빠르며 실제 드라이브 오류 / 교체 시나리오에서 작동해야합니다. 그러나 나는 그것을 테스트하는 타당한 방법을 모른다. 그래서 당분간은 못생긴 수면 스크립트를 고수 할 것입니다.


참고 1 : 설치 중에 실수로 Windows로 부팅하고 나중에 Ubuntu (실시간 또는 기타)로 재부팅 할 때 DHCP가 신비하게 실패 (나에게 발생 함)하는 경우 컴퓨터 + 라우터의 종료 + 재부팅이 도움이 될 수 있습니다. 분명히 일부 라우터는 어떤 이유로 든 우분투에 영향을 주지만 Windows에는 영향을 미치지 않는 반복적 인 DHCP 요청에 대해 "스마트"하려고합니다 ... sigh
Niclas Börlin

1
참고 2 : 위에 설치된 부팅 순서에 따라 sdb의 부팅 로더가 사용 된 것으로 표시되지만 / boot / efi가 여전히 sda ( mount | grep efi) 에서 마운트되어 있음을 알 수 있습니다 . 분명히 리눅스는 blkid와 일치하는 첫 번째 파티션을 마운트합니다 /etc/fstab. 그러나 이것은 문제가되지 않습니다.
Niclas Börlin

주 3 :해야 당신이 (위의 단계 3에서 부팅 파티션 복구를 엉망으로 예를 들면) 당신의 MD 장치에 부팅 할 수있는없이 어떤 이유로 말까지, 나는 우분투 라이브 미디어 다음 사용하여 부팅하여 액세스를 복구 할 수 있었다 apt-get install mdadmmdadm -A /dev/md0 mdadm -A /dev/md1.
Niclas Börlin

3
예. :) 시스템 구성 방법입니다.
Niclas Börlin

1
grub-efi-amd64-signed보안 부팅이 활성화 된 경우 설치 하지 않으면 "잘못된 서명"efi 오류가 발생합니다.
Alecz

0

내 제안은 데비안 OS에 대한 것이지만 우분투와 다른 사람들에게도 효과가 있다고 생각합니다.

UEFI 항목을 올바르게 처리하지 못하는 많은 마더 보드에서 발생하는 문제를 해결하는 한 가지 방법 (올바른 항목을 입력해도 데비안은 부팅되지 않음 efibootmgr -c -g -d /dev/sda -p 1 -w -L "debian" -l /EFI/debian/grubx64.efi) UEFI BIOS는 "데비안"부팅 디스크를 표시하지만 부팅되지는 않습니다 ) 대신 일반 항목을 사용합니다 /boot/efi/EFI/boot/bootx4.efi.

예를 들어 Asus Z87C는을 좋아하지 않습니다 /EFI/debian/grubx64.efi.

따라서 efi 파티션 /dev/sda1/boot/efi경로에 마운트 한 경우 :

mkdir /boot/efi/EFI/boot
cp /boot/efi/EFI/debian/grubx64.efi /boot/efi/EFI/boot/bootx4.efi

그런 다음 재부팅하십시오.

UEFI BIOS에는 "UEFI OS"일반 디스크와 이전에 efibootmgr로 만든 다른 항목이 표시되지만 아무런 문제없이 "UEFI OS"일반에서 부팅됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.