Arch Linux는 USB 디스크에서 부팅할 수 없습니다(선택한 파티션을 마운트할 수 없음)

Arch Linux는 USB 디스크에서 부팅할 수 없습니다(선택한 파티션을 마운트할 수 없음)

USB 스틱에 Arch Linux를 설치해 보았습니다. 상황이 약간 이상하지만(예를 들어 시스템 내부에 드라이브가 하나만 있다고 가정) 모든 것이 잘 설치됩니다. 재부팅할 때까지요.

  Booting 'Arch Linux'

root (hd1,1)
 Filesystem type unknown, partition type 0x7
kernel /boot/vmlinuz26 root=/dev/dsb2 ro

Error 17: Cannot mount selected partition

( /dev/dsb1/는 (hd1,0)데이터 저장 목적으로 사용되는 작은 FAT 파티션입니다. 잠긴 실험실 컴퓨터에 적합합니다.)

이것은 "Arch Linux" 명령 순서입니다:

root (hd1,1)
kernel /boot/vmlinuz26 root=/dev/dsb2 ro
initrd /boot/kernel26.img

그럽 콘솔에서:

grub> root (hd1,1)
 Filesystem type unknown, partition type 0x7
grub> cat /etc/passwd
 Error 17: Cannot mount selected partition
grub> root (hd0,1) # my ubuntu partition
 Filesystem type is ext2fs, partition type 0x73
grub> cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
<snip/>

호스트 OS인 Ubuntu에서 성공적으로 재부팅할 수 있었고 디스크 유틸리티를 사용하여 파티셔닝이 성공적으로 이루어졌음을 확인했습니다. 또한 sudo kvm /dev/dsb시작 명령을 편집하면 root (hd0,1)(즉, Arch가 마운트를 시도할 때까지 /dev/dsb2) Arch가 성공적으로 부팅됩니다.

내가 뭘 잘못했나요?

편집 1

우분투에서는 fdisk -l /dev/sdb다음을 제공합니다.

Disk /dev/sdb: 1998 MB, 1998585856 bytes
62 heads, 62 sectors/track, 1015 cylinders
Units = cylinders of 3844 * 512 = 1968128 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          65      124899    b  W95 FAT32
/dev/sdb2   *          66        1015     1825900   83  Linux

이제 읽었습니다관련 위키 섹션그러나 아무 것도 적용되지 않는 것 같습니다. 저는 GParted 또는 논리 드라이브를 사용하지 않고 모든 것이 동일한 파티션에 있습니다.

답변1

이 경우 가장 먼저 확인해야 할 것은 올바른 디스크에서 부팅을 시도하고 있는지입니다. 디스크 순서는 여러 요인에 따라 달라질 수 있습니다.

  • Grub1에서는 두 개의 하드 드라이브에만 액세스할 수 있었습니다. 이는 BIOS 인터페이스의 제한 사항입니다. 실제로 얻을 수 있는 두 개의 하드 드라이브는 BIOS 설정("부팅 순서" 등 검색)과 실제로 사용할 수 있는 디스크 및 기타 하드 드라이브와 유사한 부팅 가능한 미디어(예: USB 플래시 드라이브)에 따라 다릅니다.

  • sdaLinux에서 등의 순서는 sdb드라이브가 감지되는 순서에 따라 달라지며, 일반적으로 부팅 시 드라이버가 로드되는 순서에 따라 달라집니다. 또한 특정 디스크가 커널 구성 옵션 및 udev 설정으로 나타나는지 여부에 따라 달라집니다 sd?.hd?

여기서 Grub은 유형 7의 파티션을 보고합니다. Linux와 Grub은 파티션 유형에 관심이 없지만(확장 파티션과 같은 "컨테이너" 파티션 제외) Linux 파일 시스템을 유형 7 파티션(fdisk에서 로 설명함 HPFS/NTFS)에 두는 것은 일반적이지 않습니다. 따라서 내 생각에는 BIOS에서 제공하는 두 번째 부팅 드라이브(Grub's hd1)는 부팅하려는 디스크가 아니라 Windows 파티션이 있는 다른 디스크인 것 같습니다. hd0이것이 부팅하려는 드라이브인지 확인하십시오 . 그렇지 않은 경우 BIOS 설정을 변경해야 합니다.

Grub이 파티션의 파일 시스템을 인식하면 다음과 같이 입력 cat (hd1,1)/하고 키를 눌러 Tab그 안에 어떤 파일이 있는지 확인할 수 있습니다. 이는 Grub 프롬프트에서 길을 잃었다고 느낄 때 가지고 있는 파일 시스템을 확인하는 일반적인 방법입니다.


두 번째로 확인해야 할 것은 액세스하려는 파티션이 올바른 파티션인지 확인하는 것입니다. Grub1은 0부터 계산을 시작하고 Linux 및 Grub2는 1부터 계산을 시작합니다. 비정상적인 상황(예: BSD 설치)으로 인해 추가 문제가 발생할 수 있습니다. 논리 파티션을 추가하거나 제거하면 때로는 직관적이지 않은 방식으로 기존 파티션의 번호가 다시 매겨질 수 있습니다.

올바른 디스크에 올바른 파티션이 있는 경우 Filesystem type unknown해당 파티션에는 Grub 버전에서 지원하는 파일 시스템이 포함되어 있지 않습니다. Grub1은 btrfs를 제외한 일반적인 Linux 파일 시스템(ext2 이상, reiserfs, xfs, jfs)을 지원합니다. Grub1은 또한 LVM 또는 RAID를 지원하지 않습니다(읽을 때 일반 볼륨처럼 보이기 때문에 미러링되는 RAID-1 제외).

답변2

여기서는 grub2와 UUID를 사용하는 것이 좋습니다.

UUID는 다음과 같이 얻을 수 있습니다.

ls -l /dev/disk/by-uuid

관련 정보