ls를 설치하지 않고 장치에

ls를 설치하지 않고 장치에

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 파일 시스템의 경우.

debugfsext2/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)에서도 이름 지정이 허용됩니다.

관련 정보