
컨텍스트: 루트 볼륨에 대한 RAID1을 포함한 LVM 설정을 사용하여 Arch Linux를 설치하려고 할 때 설명한 문제가 발생했습니다.아치 리눅스 포럼에서. 이 문제에 대한 해결책을 찾지 못했는데, 스왑 파일(스왑 파티션을 생성함)을 제외하고 전체 시스템을 처음부터 다시 설치한 후 사라져서 잊어버렸습니다.
시스템이 일시 중지된 동안 실수로 시스템 전원을 끈 후(위의 "처음부터 시스템 다시 설치" 및 몇 달 사용) 시스템을 다시 시작했는데 동일한 오류가 다시 발생했습니다.
문제는 위 링크에 자세히 설명되어 있습니다. Stack Exchange를 자체적으로 개선되는 지식 기반으로 만들기 위한 노력의 일환으로 여기에 게시물 내용을 포함합니다.
LVM을 사용하여 Arch Linux를 설치하고 있습니다. 이것은 Arch를 세 번째 또는 네 번째 설치하는 것이지만 LVM을 처음 시도하는 것입니다. 내 디스크 레이아웃은 다음과 같습니다.
물리적인 저장 매체는 /dev/sda(SSD, 약 100GB 용량)와 /dev/sdb(HDD, 약 1TB 용량)가 있습니다.
LVM을 사용하여 다음을 포함하는 볼륨 그룹 Volumegroup0을 만들었습니다.
- raid1을 사용하여 SSD와 HDD 간에 시스템 볼륨을 미러링하여 SSD 용량(volumegroup0/systemvolume_raid1)의 대부분을 차지하고 ext4 파일 시스템(16GB 스왑 파일 포함)을 사용합니다.
- btrfs 파일 시스템을 사용하는 SSD의 부팅 볼륨 ~500MB(volumegroup0/boot)
- HDD의 메인 볼륨, 더 빠른 액세스를 위한 SSD의 10GB 캐시 풀(volumegroup0/home), btrfs 파일 시스템 있음
- HDD의 var 볼륨(volumegroup0/var), SSD의 2GB 캐시 풀, 기본 볼륨과 동일, ext4 파일 시스템 포함
- 시스템 볼륨을 백업하는 데 사용되는 스냅샷 볼륨을 Volumegroup0/systemvolume_snapshot이라고 합니다.
이제 어젯밤에 시스템이 부팅되었고 설치가 성공적으로 완료되었다고 생각했습니다. 그러나 오늘 아침에 부팅할 때 시스템이 루트 볼륨을 마운트하지 못하고 비상 셸에 빠졌습니다.
기본 GRUB 매개변수(저는 GRUB를 사용하고 있습니다), "quiet"으로 부팅하고 종료합니다. 부팅 실패 후 화면은 다음과 같습니다.
:: 초기 후크 실행 [udev] 버전 242.29-2-arch 시작 :: 초기 후크 실행 [lmv2] :: 후크 실행 [udev] :: uevents 트리거...
이 메시지는 다음 내용이 나타나기 전 약 30초 동안 화면에 남아 있습니다.
장치 /dev/mapper/volumegroup0-systemvolume_raid1 10초 동안 기다립니다...
그리고 10초 후:
오류: '/dev/mappervolumegroup0-systemvolume_raid1' 장치를 찾을 수 없습니다. fsck를 건너뜁니다. ::실제 루트 마운트에 '/dev/mappervolumegroup0-systemvolume_raid1' 마운트: /new_root: 지정된 파일 시스템 유형이 없습니다. 이제 비상 쉘에 배치되었습니다. sh: 작업 제어에 액세스할 수 없습니다. [루트 파일 시스템]#
Archiso Live USB로 부팅하여 문제에 대한 해결책을 찾던 중 이상한 점을 발견했습니다. 시작하자마자
ls /dev/매퍼
또는
ls /dev/volumegroup0
, 출력에는 systemvolume_raid1을 제외하고 내가 기대하는 모든 논리 볼륨이 포함됩니다. /dev/mapper에 Volumegroup0-systemvolume_raid1_rimage0과 1, Volumegroup0-systemvolume_raid1_rmeta0과 1이 존재하더라도 루트 볼륨 자체는 존재하지 않습니다. 하지만 내가 달리면
스캐너
(--mknodes를 사용하거나 사용하지 않고 디렉터리 중 하나를 다시 나열하면 systemvolume_raid1이 존재하고 문제가 없는 것처럼 정확합니다. 문제 없이 설치할 수 있습니다. 필요한 모듈을 확인한 후 다시 빌드하려고 그렇게 했습니다. initramfs에 대한 후크는 mkinitcpio.conf에 있으며(그렇습니다) /etc/fstab은 스왑 파일 없이(genfstab -U를 사용하여) 다시 생성됩니다(/etc/fstab이 자동 활성화된 스왑을 포함하도록 다시 생성되기 때문입니다). 내가 마지막으로 한 일).
[[의 내용은 /etc/fstab
원래 포럼 게시물에 포함되어 있지만 정확히 동일하지는 않습니다. 올바른 버전은 아래를 참조하세요.]
고쳐 쓰다:
내가 달리면
lvs-a
systemvolume_raid1이 표시되지 않으면 lvs -a의 올바른 출력이 포함된 테이블 위에 다음 출력의 여러 줄이 표시됩니다.
RAID 세그먼트 유형을 예상했지만 결과가 NULL이었습니다.
노트:
Arch Wiki의 LVM 기사에는 커널 매개변수 "root"가 "/dev/[italic]vg-name[/italic]/[italic]lv-name[/과 같은) 매핑된 장치를 가리키는지 확인해야 한다고 나와 있습니다. 이탤릭체] ". 제 경우에는 매개변수가 /dev/mapper/volumegroup0-systemvolume_raid1을 가리키지만 이를 Wiki에서 권장하는 형식으로 변경해도 시작 시 오류 메시지에 나오는 장치 이름(예상대로) 외에는 아무 것도 변경되지 않습니다. "뿌리").
저는 GRUB를 사용하고 있으며 grub-mkconfig를 통해 구성을 생성하고 있습니다(해당되는 경우).
내 문제는 다음과 비슷한 것 같습니다.Unix 및 Linux Stack Exchange에 대한 공개 질문입니다..
다음은 /etc/fstab의 올바른 내용입니다.위에 링크된 포럼 게시물의 버전과 다릅니다.:
#/dev/mapper/volumegroup0-systemvolume_raid1
UUID=... / ext4 rw,relatime 0 1
#/dev/mapper/volumegroup0-var
UUID=... /var ext4 rw,relatime,stripe=16 0 2
#/dev/mapper/volumegroup0-boot
UUID=... /boot btrfs rw,relatime,ssd,space_cache,subvolid=5,subvol=/ 0 0
#/dev/mapper/volumegroup0-home
UUID=... /home btrfs rw,relatime,ssd,space_cache,subvolid=5,subvol=/ 0 0
#/dev/mapper/volumegroup0-swap
UUID=... none swap defaults 0 0
문제는 시스템이 시작 시 루트 볼륨을 "활성화"하지 못하거나 루트 볼륨을 전혀 확인하지 못하는 것과 관련이 있다고 확신하지만 어떤 방식인지는 모르겠습니다.
lvscan
관련 사항은 라이브 USB에서 부팅한 후의 출력이 다음과 같다는 것입니다.
ACTIVE '/dev/volumegroup0/home' [500.00 GiB] inherit
ACTIVE '/dev/volumegroup0/var' [50.00 GiB] inherit
ACTIVE Original '/dev/volumegroup0/systemvolume_raid1' [83.50 GiB] inherit
inactive '/dev/volumegroup0/boot' [500.00 MiB] inherit
ACTIVE Snapshot '/dev/volumegroup0/systemvolume_snapshot' [40.00 GiB] inherit
inactive '/dev/volumegroup0/swap' [16.00 GiB] inherit
inactive Snapshot '/dev/volumegroup0/systemvolume_pre_dwarf' [3.00 GiB] inherit
pvscan
또는 같은 명령을 실행한 후 vgscan
(다른 명령도 같은 효과를 가질 수 있지만 가능한 모든 LVM 명령을 테스트하지는 않았기 때문에 "예를 들어"라고 말합니다) 위에 표시된 모든 볼륨은 이 가설을 뒷받침하는 것 같습니다 inactive
. active
부팅 시 무언가가 제대로 활성화되지 않고 있지만 확실하게 말할 수는 없습니다.
시스템이 시작되지 않는 이유는 무엇입니까? 이 문제를 어떻게 해결할 수 있나요?
답변1
raid 1을 제거하면 이 문제를 해결할 수 있습니다.
lvconvert -m 0 lv /dev/to/remove
부팅 중에 RAID 1 볼륨이 활성화되지 않는 이유를 알 수 없습니다. 부팅한 후에 활성화할 수 있습니다. 문제 없습니다. 볼륨을 수동으로 활성화하기 위해 initcpio 사용자 정의 후크를 추가하려고 시도했지만 그런 식으로 문제를 해결할 수 없었습니다. 아마도 후크가 실행 중인지 확실하지 않았기 때문일 것입니다.