파티션 내의 하위 파티션은 lsblk 또는 /dev/에 표시되지 않습니다.

파티션 내의 하위 파티션은 lsblk 또는 /dev/에 표시되지 않습니다.

나는 /dev/sdb4에 Archlinux를 설치하고 부팅 파티션 구성표를 사용했습니다. 설치 후 /dev/sdb4(ext4)를 마운트할 수 없습니다. 오류는 입니다 VFS: Can't find ext4 filesystem.

lsblk는 다음을 보여줍니다.

sdb      8:16   0 931,5G  0 disk 
├─sdb1   8:17   0   512M  0 part /boot/efi
├─sdb2   8:18   0 768,3G  0 part /
├─sdb3   8:19   0  62,7G  0 part [SWAP]
└─sdb4   8:20   0   100G  0 part 

그러나 fdisk -l:

Gerät       Boot Anfang      Ende  Sektoren Größe Kn Typ
/dev/sdb4p1 *      6144    421887    415744  203M  b W95 FAT32
/dev/sdb4p2      522240 209418239 208896000 99,6G 83 Linux

설치 프로그램은 파티션 내에 두 개의 하위 파티션을 생성합니다. /dev/sdb4의 파티션 테이블

이제 다음 파티션을 마운트하려고 합니다.

sudo mount /dev/sdb4p1 /mnt
mount: /mnt: Spezialgerät /dev/sdb4p1 ist nicht vorhanden.
       dmesg(1) könnte nach einem fehlgeschlagenen mount-Systemaufruf
       weitere Informationen liefern.

나는 할 수 없다. 분명히 /dev/sdb4p1그것은 존재하지 않습니다. 어떻게 해야 합니까?

답변1

답변

파티션을 파일에 마운트하면 이 문제를 해결할 수 있을 것 같습니다 .img.

내 생각이 맞다면 런닝은 sudo losetup --partscan --show --find /dev/sdb4루프 장치(예를 들어 /dev/loop23)를 생성해야 한다.

이는 또한 파티션 수 , 각 파티션에서 사용할 수 있는 마운트 등에 따라 /dev/loop23p1(파티션 1), (파티션 2) 등을 생성해야 합니다 ./dev/loop23p2/dev/sdb4sudo mount /dev/loop23p1 [MOUNT_POINT]

이는 /dev/loop23단지 예시일 뿐이라는 점에 유의하시기 바랍니다. 명령에서 반환된 값을 사용합니다 losetup.


설명하다:

losetup루프 장치를 설정하고 제어하는 ​​데 사용되는 명령입니다.

명령에서 sudo losetup --partscan --show --find /dev/sdb4다음 태그를 지정합니다.

  • --partscan: 지정된 블록 장치에서 사용 가능한 파티션을 검색합니다.
  • --showlosetup: 출력에 할당된 루프 장치의 이름을 알려주는 데 사용됩니다 .
  • --findlosetup: 사용하지 않는 루프 장치를 찾아서 할당하라는 옵션입니다 .
  • /dev/sdb4: 블록 장치/파티션의 이름입니다.

옵션의 장점은 사용 가능한 모든 파티션을 자동으로 검색하고 등이라는 이름의 --partscan하위 주기 장치를 생성한다는 것입니다. 마치 전체 파티션인 것처럼 각 하위 루프 장치를 마운트할 수 있습니다.[loop dev]p1[loop dev]p2[loop dev]p3


청소하다

sudo umount [MOUNT_POINT]설치가 완료되면 평소처럼 실행하여 마운트된 파티션을 마운트 해제 해야 합니다 . 이 외에도 sudo losetup -d [loop dev]( [loop dev]이전에 반환된 루프 장치 이름으로 대체)를 사용하여 생성한 루프 장치도 삭제해야 합니다 losetup.

루프 장치가 제거되었는지 확인하려면 를 실행하면 됩니다 losetup.

관련 정보