루트 장치를 찾을 수 없습니다''

루트 장치를 찾을 수 없습니다''
ERROR: device '' not found. Skipping fsck.
ERROR: Unable to find root device ''.
You are being dropped to recovery shell 

한동안 Arch Linux를 설치하려고 했는데 계속해서 이 오류가 발생합니다. 나는 정말로 무엇을 해야할지 모르겠습니다.

약간의 배경 정보: 내 컴퓨터에는 원래 Fedora와 Windows 10(모두 64비트) 이중 부팅이 있었고 Windows가 먼저 설치되었습니다. Fedora 대신 Arch를 사용하기로 결정했습니다. 루트와 에 대한 /boot/efi별도의 파티션이 있으며 /home루트만 다루었습니다. 파티션을 마운트하고 를 제외한 모든 항목을 삭제했습니다 /home( /boot실수로 보관했습니다). 을 실행하고 pacstrap -i /mnt base시스템을 설치하고 재부팅했습니다. 정상적으로 부팅되지만 Fedora 로딩 애니메이션 및 모든 기능과 함께 Fedora 부트로더를 사용합니다. Fedora 부트 로더로 인해 발생한 것으로 의심되는 일부 서비스를 시작할 수 없는 것을 포함하여 시스템에 몇 가지 문제가 있습니다. Arch 설치 USB로 재부팅하고 이번에 포함한 모든 항목을 삭제했습니다 /boot(하지만 /boot/efi설치하지 않았습니다.). 다시 설치했는데 grub이 vmlinuz 이미지를 인식하지 못했습니다. 그래서 저는 USB로 재부팅하고 새로운 Arch 파티션으로 루트를 이동한 다음 개인적으로 가장 좋아하는 부트로더인 rEFInd를 설치하기로 결정했습니다. rEFInd가 설치된 후 pacman -S refind-efirEFInd refind-install가 설치되고 재부팅됩니다. Windows가 시작되지만 Arch를 시작하려고 하면 이 오류가 발생합니다.

mkinitcpio -p linux여러번 실행해봤는데 /etc/fstab완전히 정상인 것 같습니다.

내가 시도한 것은 다음과 같습니다.

https://superuser.com/questions/769047/unable-to-find-root-device-on-a-fresh-archlinux-install#788480

자동 감지 전 블록 이동, 효과 없음

http://www.linuxforums.org/forum/arch-linux/199189-error-device-not-found-skipping-fsck.html

Refind.conf 및 refind_linux.conf를 사용하면 아무 것도 작동하지 않습니다.

https://superuser.com/questions/835120/error-unable-to-find-root-device-dropped-to-recovery-shell

initramfs-linux.img가 올바른 디렉토리에 있는지 다시 확인하세요.

비슷한 문제를 보았지만 해결 방법 중 어느 것도 효과가 없었습니다. 아치를 시작하는 방법에 대한 아이디어가 있나요?

편집: LVM을 사용하고 있다는 사실을 발견했습니다. 음, 응. 내 기본, 루트 및 스왑 파티션은 모두 /dev/sda8에 있는 작은 LVM 항목입니다(무엇이라고 불러야 할지 모르겠습니다). 이것이 어떤 영향을 미치는지 모르겠습니다.

답변1

문제는 rEFInd가 디렉터리 refind_linux.conf에 파일을 자동으로 생성하지 않는다는 것입니다 ./boot

"EFI 스텁 로더 지원 기술 세부 사항"의 4단계부터 시작하세요.rEFInd 문서:

rEFInd는 커널 파일과 동일한 디렉터리에서 refind_linux.conf라는 파일을 찾습니다. 이는 일련의 행으로 구성되며 각 행에는 레이블과 일련의 커널 옵션이 포함됩니다. 첫 번째 줄은 기본 옵션을 설정하고, 다음 줄은 기본 메뉴 탭의 하위 메뉴 화면에서 액세스할 수 있는 옵션을 설정합니다. refind-install 스크립트를 사용하여 rEFInd를 설치한 경우 스크립트는 컴퓨터에 맞게 사용자 정의된 샘플 refind_linux.conf 파일을 /boot에 생성합니다. 이 파일은 많은 설치에서 변경 없이 작동하지만 일부 설치에서는 조정이 필요할 수 있습니다.

왜 이 파일이 생성되지 않는지 잘 모르겠지만 파일을 생성하면 현재 발생한 문제를 해결할 수 있을 가능성이 높습니다.

refind_linux.conf파일 만들기

Arch Linux 위키에는 하나가 있습니다우수한 출품작이를 수행하는 방법에 대해 설명하지만 기본적으로 커널과 동일한 디렉토리에 배치합니다(일반적으로 /boot자동 또는 수동으로 생성하여). 이 파일에서 주석 처리되지 않은 첫 번째 줄은 커널을 시작하기 위한 기본 매개변수가 됩니다.

다음 명령을 사용하여 파일을 만들었습니다.mkrlconf명령을 실행하면 생성된 파일 /boot/refind_linux.conf은 다음과 같습니다.

"Boot with standard options"  "archisobaseddir=arch archisolabel=ARCH_201610"
"Boot to single user mode"    "archisobaseddir=arch archisolabel=ARCH_201610 single"
"Boot with minimal options"   "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

우리는 진전을 이루고 있지만 아직 작동하지 않습니다. 라이브 USB에서 생성 중이므로 처음 두 항목은 USB의 ISO를 참조하므로 올바르지 않습니다. 하지만 최종 항목은 실제로 정확합니다. 이는 받은 오류와 마찬가지로 루트 장치를 ''디스크의 UUID로 설정하기 때문입니다 /.

따라서 기본 시작 옵션으로 설정하려면 다른 줄을 삭제하고 레이블을 변경하면 됩니다.

"Boot with standard options"  "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

파일을 저장하고 시스템을 다시 시작하면 이제 작동할 것입니다!

각주

  1. 물론 파일을 만드는 것은 아직 멀었습니다. 생성하기 위해 을 사용할 필요는 없으며 mkrlconf직접 수동으로 생성할 수 있습니다. 게다가 디스크 UUID(수동으로 복사하여 입력하고 싶지 않음)를 자동으로 채운다는 것입니다.

  2. 스텁 로더 기술 세부 사항(위에 링크됨)의 5단계에서는 refind_linux.conf파일이 존재하지 않는 경우 rEFInd가 작동하는 방법을 간략하게 설명합니다 /etc/fstab. 이상한 볼륨 구성에도 불구하고 작동하지 않을 가능성이 높습니다.

답변2

파티션을 루트로 설정하고 FIFO 스크립트의 "부트로더 설치/구성" 섹션을 시도해 보십시오.https://github.com/helmuthdu/aui

이것이 도움이 되지 않는다면. Elronnd가 제안한 것처럼 내 파티션을 백업 /home하고 FIFO/LILO 스크립트를 사용하여 새로 설치해 봅니다.

행운을 빌어요!

답변3

방금 전체 파티션을 삭제하고 다시 설치했습니다. LVM이 계속 문제를 일으키고 있습니다. 이제 완벽하게 작동합니다.

관련 정보