ls
먼저 설치하지 않고도 기기에서 실행할 수 있나요 ?
이 같은:
# ls /dev/sda1
답변1
debugfs
다음 프로그램 을 사용할 수 있습니다e2fsprogs. 역사적인 이름에도 불구하고 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
이 접근 방식이 권장할만한 가치가 있다고는 말할 수 없지만 귀하의 요구 사항을 충족할 것입니다.
답변2
파일 시스템을 마운트하는 전체 목적은 해당 파일에 액세스하는 것입니다. 따라서 일반적으로 파일 시스템을 마운트하지 않으면 파일 시스템의 파일에 액세스할 수 없습니다.
설치 없이 파일에 직접 액세스할 수 있는 유틸리티가 있습니다.디버그 파일ext2/ext3/ext4 파일 시스템 및공구 상자FAT 파일 시스템의 경우.
debugfs
ext2/ext3/ext4의 경우 위험하고 사용하기 어려운 프로그램을 호출하는 대신 마지막 마운트 위치를 나열할 수 있습니다.
tune2fs -l /dev/sda1 | grep 'Last mounted'
그러나 이는 마지막 설치 위치가 기록된 경우에만 유용합니다.
대부분의 파일 시스템 유형은 파일 시스템 레이블 제공을 지원합니다(예: tune2fs -L foo
). 따라서 모든 파일 시스템에 고유한 레이블을 지정하십시오. 그런 다음 레이블을 통해 파일 시스템을 마운트합니다.
mount /dev/disks/by-label/foo /media/foo
또는
mount LABEL=foo /media/foo
답변3
언급했듯이 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"
답변4
간단한 대답: 할 수 없습니다. 파일 시스템 드라이버가 제공하는 시스템 호출로 변환되는 표준 libc 루틴을 사용하므로 ls
파일 시스템(또는 이러한 시스템 호출을 사용하는 모든 것)을 마운트하지 않고는 사용할 수 없습니다.ls
파일 시스템 드라이버의 특정 부분에 대한 자체 복사본을 보유하여(예: Windows에서 Ext2 파일 시스템을 읽는 경우) 이 문제를 회피하는 유틸리티를 작성할 수 있지만 이는 매우 비실용적입니다.
문제가 단지 파티션을 식별하는 것뿐이라면 아마도 다음을 사용하기 시작해야 할 것입니다.GPT파티션 네임스페이스(파티션당 72바이트)가 있습니다. 일부 오버레이 솔루션(예: Linux MD 또는 LVM)에서도 이름 지정이 허용됩니다.