fdisk는 장치의 파티션 테이블을 표시하지만 udev는 장치를 생성하지 않습니다.

fdisk는 장치의 파티션 테이블을 표시하지만 udev는 장치를 생성하지 않습니다.

USB 외장하드를 설치하려고 합니다. 특히 USB 키입니다. 그러나 udev드라이브의 파티션은 표시되지 않습니다.

나는 기본 커널, 즉 4.19.0-6-amd64.

fdisk보고서

root@orwell:/mnt# fdisk -l /dev/sdh
Disk /dev/sdh: 1.9 GiB, 2001076224 bytes, 3908352 sectors
Disk model: Cruzer Blade
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x03b1e8fa

Device     Boot Start     End Sectors  Size Id Type
/dev/sdh1        2048 3908351 3906304  1.9G  b W95 FAT32

하지만 파티션을 마운트하려고 하면

root@orwell:/mnt# mount -t vfat /dev/sdh1 joseph
mount: /mnt/joseph: special device /dev/sdh1 does not exist.

이는 그다지 관련성이 없을 수 있지만 파티션에도 UUID가 없는 것으로 보입니다. 적어도 장치는 blkid.

journalctl장치가 연결되면 다음 로그가 표시됩니다.

Nov 06 19:01:09 orwell kernel: usb 1-1: new high-speed USB device number 6 using ehci-pci
Nov 06 19:01:09 orwell kernel: usb 1-1: New USB device found, idVendor=0781, idProduct=5567, bcdDevice= 1.00
Nov 06 19:01:09 orwell kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 06 19:01:09 orwell kernel: usb 1-1: Product: Cruzer Blade
Nov 06 19:01:09 orwell kernel: usb 1-1: Manufacturer: SanDisk
Nov 06 19:01:09 orwell kernel: usb 1-1: SerialNumber: 20063486020EF1B285D3
Nov 06 19:01:09 orwell kernel: usb-storage 1-1:1.0: USB Mass Storage device detected
Nov 06 19:01:09 orwell kernel: scsi host11: usb-storage 1-1:1.0
Nov 06 19:01:09 orwell mtp-probe[30090]: checking bus 1, device 6: "/sys/devices/pci0000:00/0000:00:12.2/usb1/1-1"
Nov 06 19:01:09 orwell mtp-probe[30090]: bus: 1, device: 6 was not an MTP device
Nov 06 19:01:10 orwell mtp-probe[30094]: checking bus 1, device 6: "/sys/devices/pci0000:00/0000:00:12.2/usb1/1-1"
Nov 06 19:01:10 orwell mtp-probe[30094]: bus: 1, device: 6 was not an MTP device
Nov 06 19:01:10 orwell kernel: scsi 11:0:0:0: Direct-Access     SanDisk  Cruzer Blade     1.01 PQ: 0 ANSI: 2
Nov 06 19:01:10 orwell kernel: sd 11:0:0:0: Attached scsi generic sg9 type 0
Nov 06 19:01:10 orwell kernel: sd 11:0:0:0: [sdh] 3908352 512-byte logical blocks: (2.00 GB/1.86 GiB)
Nov 06 19:01:10 orwell kernel: sd 11:0:0:0: [sdh] Write Protect is off
Nov 06 19:01:10 orwell kernel: sd 11:0:0:0: [sdh] Mode Sense: 03 00 00 00
Nov 06 19:01:10 orwell kernel: sd 11:0:0:0: [sdh] No Caching mode page found
Nov 06 19:01:10 orwell kernel: sd 11:0:0:0: [sdh] Assuming drive cache: write through
Nov 06 19:01:11 orwell kernel: sd 11:0:0:0: [sdh] Attached SCSI removable disk
Nov 06 19:01:11 orwell systemd[1]: Starting [email protected]...
Nov 06 19:01:11 orwell usbmount[30113]: loaded usbmount configurations
Nov 06 19:01:11 orwell usbmount[30114]: usbmount is disabled, see /etc/usbmount/usbmount.conf
Nov 06 19:01:11 orwell systemd[1]: Started [email protected].
Nov 06 19:01:11 orwell audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='unit=usbmount@dev-sdh comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

답변1

어떤 이유로 Linux 커널은 파티션 테이블을 인식하지 못하므로 파티션 테이블이 있어야 한다는 것을 알지 못합니다 sdh1. (DOS 파티션 테이블을 지원하지 않는 커널을 컴파일하는 것과 같은) 이상한 일을 하지 않는 한, 이것은 . 아마도 파티션 테이블 형식이 커널이 기대하는 것과 정확히 일치하지 않는다는 의미일 것입니다( fdisk파티션 테이블 구문 분석의 다른 구현이므로 fdisk가 이를 사용할 수 있는 이유일 것입니다). (etc.)를 사용하여 파티션 테이블을 다시 작성하면 fdisk문제가 해결될 수 있습니다.

그러나 테이블을 다시 쓰지 않고(예: 디스크를 수정하지 않고) 파티션을 마운트하려는 경우 다음 명령을 사용하여 파티션 세부 정보를 커널에 수동으로 제공할 수 있습니다 addpart.

addpart /dev/sdh 1 2048 3906304
#                ^   ^     ^ 
# partition#────┘   |      \
#              start sector  length (sectors)   ← both from fdisk -l output

실행한 후(그리고 udev를 잠시 기다린 후) 하나가 있어야 하며 /dev/sdh1계속해서 설치할 수 있습니다.

관련 정보