ls
먼저 장착하지 않고 장치 에서 실행할 수 있습니까?
이 같은:
# ls /dev/sda1
ls
.
ls
먼저 장착하지 않고 장치 에서 실행할 수 있습니까?
이 같은:
# ls /dev/sda1
ls
.
답변:
e2fsprogsdebugfs
프로그램을 사용할 수 있습니다 . 역사적 이름에도 불구하고 ext2 / 3 / 4 파일 시스템에서 작동합니다. 사용법은 간단합니다.
# debugfs -R "ls -l" /dev/sda6
2 40755 (2) 1001 1001 4096 17-Sep-2013 04:03 .
2 40755 (2) 1001 1001 4096 17-Sep-2013 04:03 ..
16 100644 (1) 1001 1001 9085 17-Sep-2013 04:03 avserver.conf
17 100644 (1) 1001 1001 2177 17-Sep-2013 04:03 bash.bashrc
26 100644 (1) 1001 1001 722 17-Sep-2013 04:03 crontab
…
여기서 "ls -l"은 debugfs
대부분 다음과 같이 작동 하는 특정 명령입니다 ls -l
. 임의의 쉘 명령을 사용할 수 없습니다. 기본적으로 debugfs는 드라이브를 읽기 전용 모드로 열므로 비교적 안전합니다. 예를 들어 비 ext2 / 3 / 4 파티션에서 이것을 시도하면 진단을 제공합니다.
# debugfs -R "ls -l" /dev/sda2
/dev/sda2: Bad magic number in super-block while opening filesystem
ls: Filesystem not open
나는이 권장 관행을 고려한다고 말할 수는 없지만 당신이 요구하는 것을 할 것입니다.
파일 시스템 마운트의 요점은 파일에 액세스하는 것입니다. 따라서 일반적으로 파일 시스템을 마운트하지 않고는 파일 시스템의 파일에 액세스 할 수 없습니다.
ext2 / ext3 / ext4 파일 시스템 용 debugfs 및 FAT 파일 시스템 용 mtools 와 같이 마운트하지 않고 파일에 직접 액세스하는 몇 가지 유틸리티가 있습니다 .
ext2 / ext3 / ext4의 경우 위험하고 사용하기 어려운 program을 호출하지 않고 debugfs
마지막 마운트 위치를 나열 할 수 있습니다.
tune2fs -l /dev/sda1 | grep 'Last mounted'
그러나 이것은 마지막 마운트 위치가 기록 된 경우에만 유용합니다.
대부분의 파일 시스템 유형은 파일 시스템 레이블 (예 :) 제공을 지원합니다 tune2fs -L foo
. 따라서 모든 파일 시스템에 고유 한 레이블을 지정하십시오. 그런 다음 레이블로 파일 시스템을 마운트하십시오.
mount /dev/disks/by-label/foo /media/foo
또는
mount LABEL=foo /media/foo
간단한 대답 : 할 수 없습니다. ls
파일 시스템 드라이버가 제공하는 시스템 호출로 변환되는 표준 libc 루틴을 사용 ls
하므로 파일 시스템을 마운트하지 않고는 사용할 수 없습니다 (또는 해당 시스템 호출을 사용하는 모든 것).
파일 시스템 드라이버의 일부 부분 (예 : Windows에서 Ext2 파일 시스템을 읽기 위해 존재 함)의 사본을 가짐으로써이를 피할 수있는 유틸리티를 작성할 수 있지만 이는 실용적이지 않습니다.
문제가 파티션을 식별하는 것이라면 파티션 이름을위한 공간이있는 GPT (파티션 당 72 바이트)를 사용하는 것이 좋습니다. 일부 기존 솔루션 (예 : Linux MD 또는 LVM)에서도 이름을 지정할 수 있습니다.
앞에서 설명한 것처럼 debugfs가 잘 작동합니다.
debugfs -R "ls -l" /dev/sda1
NTFS의 경우 ntfs-3g의 ntfsls가 있습니다.
ntfsls /dev/sda2
FAT의 경우 mtools의 mdir이 있습니다.
mdir -i /dev/sdc1
exFAT의 경우 확실하지 않습니다. exfat-utils에는 위에서 설명한 것과 유사한 도구가 포함되어 있지 않습니다. dumpexfat가 있지만 요청한 정보를 제공 할 것이라고는 생각하지 않습니다.
연결된 드라이브에 대한 자세한 내용을 보려면 lsblk가 있습니다.
lsblk
개인적으로 나는 이것을 선호하고 별명을 설정했습니다.
alias lsblk="lsblk -o MODEL,TRAN,NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MAJ:MIN"