USB에서 Kali live를 실행하고 Windows 10 파티션에 액세스하려고 했습니다(Windows에 잊어버린 비밀번호가 있어서 SAM 파일을 변경하려고 했기 때문입니다). HD 드라이브에서는 방금 사용 mount /dev/sdX /mnt
하고 입력했지만 SD 드라이브에서는(이번이 처음 사용함) 해결 방법을 모르는 파일 시스템 오류가 발생합니다. fdisk -l
결과 는 다음과 같습니다 .
Disk /dev/mmcblk0: 29.1 GiB, 31268536320 bytes, 61071360 sectors
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: gpt
Disk identifier: BDCC441D-C0B3-4F13-A548-025EC15FA7FE
Device Start End Sectors Size Type
/dev/mmcblk0p1 2048 534527 532480 260M EFI System
/dev/mmcblk0p2 534528 567295 32768 16M Microsoft reserved
/dev/mmcblk0p3 567296 59054079 58486784 27.9G Microsoft basic data
/dev/mmcblk0p4 59054080 61059071 2004992 979M Windows recovery environment
Disk /dev/mmcblk0boot1: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mmcblk0boot0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 3.7 GiB, 4005560320 bytes, 7823360 sectors
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: 0x17fcad22
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 64 5898239 5898176 2.8G 17 Hidden HPFS/NTFS
/dev/sda2 5898240 5899647 1408 704K 1 FAT12
Disk /dev/loop0: 2.6 GiB, 2779897856 bytes, 5429488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
이것이 결과이다fdisk /dev/mmcblk0p3 -l
Disk /dev/mmcblk0p3: 27.9 GiB, 29945233408 bytes, 58486784 sectors
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: 0x78787878
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p3p1 2021161080 4042322159 2021161080 963.8G 78 unknown
/dev/mmcblk0p3p2 2021161080 4042322159 2021161080 963.8G 78 unknown
/dev/mmcblk0p3p3 4294932600 8589899894 4294967295 2T 78 unknown
/dev/mmcblk0p3p4 4294967295 5035196669 740229375 353G ff BBT
이것이 결과이다file -s /dev/mmcblk0p3
/dev/mmcblk0p3: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "-FVE-FS-", sectors/cluster 8, reserved sectors 0, Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 567296, FAT (32 bit), sectors/FAT 8160, serial number 0x0, unlabeled; NTFS, sectors/track 63, physical drive 0x1fe0, $MFT start cluster 393217, serial number 02020454d414e204f, checksum 0x41462020
이것이 결과이다lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 2.6G 1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 1 3.7G 0 disk
├─sda1 8:1 1 2.8G 0 part /lib/live/mount/medium
└─sda2 8:2 1 704K 0 part /media/root/Kali Live
mmcblk0 179:0 0 29.1G 0 disk
├─mmcblk0p1 179:1 0 260M 0 part
├─mmcblk0p2 179:2 0 16M 0 part
├─mmcblk0p3 179:3 0 27.9G 0 part
└─mmcblk0p4 179:4 0 979M 0 part
mmcblk0boot0 179:256 0 4M 1 disk
mmcblk0boot1 179:512 0 4M 1 disk
mmcblk0rpmb 179:768 0 4M 0 disk
이 명령을 실행할 때:
mount /dev/mmcblk0p3/ /mnt
다음 오류가 발생합니다.
NTFS signature is missing.
Failed to mount '/dev/mmcblk0p3': Invalid argument
The device '/dev/mmcblk0p3' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
나는 또한 이것을 시도했지만 mount -t vfat /dev/mmcblk0p3 /mnt
다음과 같은 결과를 얻었습니다.
mount: wrong fs type, bad option, bad superblock on /dev/mmcblk0p3,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
드디어 결과가 나왔네요cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev tmpfs
nodev bdev
nodev proc
nodev cpuset
nodev cgroup
nodev cgroup2
nodev devtmpfs
nodev debugfs
nodev tracefs
nodev securityfs
nodev sockfs
nodev dax
nodev bpf
nodev pipefs
nodev ramfs
nodev hugetlbfs
nodev devpts
nodev pstore
nodev mqueue
vfat
ntfs
iso9660
nodev overlay
squashfs
nodev autofs
nodev efivarfs
nodev binfmt_misc
fuseblk
nodev fuse
nodev fusectl
이러한 오류의 원인은 무엇입니까?
답변1
근본 원인은 중첩된 파티션을 마운트하려고 하는데 Linux가 이를 블록 장치로 인식하지 못하기 때문입니다. GPT 테이블은 다음과 같습니다 /dev/mmcblk0
.
Disk /dev/mmcblk0: 29.1 GiB, 31268536320 bytes, 61071360 sectors
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: gpt
Disk identifier: BDCC441D-C0B3-4F13-A548-025EC15FA7FE
Device Start End Sectors Size Type
/dev/mmcblk0p1 2048 534527 532480 260M EFI System
/dev/mmcblk0p2 534528 567295 32768 16M Microsoft reserved
/dev/mmcblk0p3 567296 59054079 58486784 27.9G Microsoft basic data
/dev/mmcblk0p4 59054080 61059071 2004992 979M Windows recovery environment
세 번째 파티션에는 /dev/mmcblk0p3
파일 시스템 대신 MBR 테이블이 포함됩니다.
Disk /dev/mmcblk0p3: 27.9 GiB, 29945233408 bytes, 58486784 sectors
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: 0x78787878
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p3p1 2021161080 4042322159 2021161080 963.8G 78 unknown
/dev/mmcblk0p3p2 2021161080 4042322159 2021161080 963.8G 78 unknown
/dev/mmcblk0p3p3 4294932600 8589899894 4294967295 2T 78 unknown
/dev/mmcblk0p3p4 4294967295 5035196669 740229375 353G ff BBT
위의 DOS 디스크 레이블을 참고하십시오. 그러나 Linux는 파티션 내에 중첩된 MBR 테이블을 인식하지 못합니다. 따라서 MBR 파티션은 설치에 사용할 수 없습니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
mmcblk0 179:0 0 29.1G 0 disk
├─mmcblk0p1 179:1 0 260M 0 part
├─mmcblk0p2 179:2 0 16M 0 part
├─mmcblk0p3 179:3 0 27.9G 0 part
| |-- No block devices are shown nested here.
└─mmcblk0p4 179:4 0 979M 0 part
...
해결책
루프 마운트를 사용하여 중첩된 파티션을 마운트할 수 있습니다. 기본적으로 중첩된 파티션을 가리키는 블록 장치를 생성한 다음 블록 장치를 마운트합니다. 이 작업은 수행하기 어렵고 fdisk
표시된 중첩 파티션의 시작 및 끝 섹터가 명백히 올바르지 않기 때문에 많은 지침을 제공할 수 없습니다.
기본적으로 중첩된 파티션이 실제로 시작하고 끝나는 위치를 파악한 다음 오프셋 및 크기 제한 옵션을 사용하여 루프 장치를 만들어야 합니다. 이 같은:
mount /dev/mmcblk0p3 /mnt -o loop,offset=123,sizelimit=456
자원
man losetup
- 오프셋 및 크기 제한 이해- https://superuser.com/questions/83249/how-to-create-device-driver-for-nested-partitions- 비슷한 질문
- https://www.unix.com/filesystems-disks-and-memory/24366-can-loopback-filesystem-partitioned.html- 자세한 방법은 실린더가 있는 구형 드라이브에 적용됩니다.