그것을 장착하지 않고 장치에 LS


9

ls먼저 장착하지 않고 장치 에서 실행할 수 있습니까?
이 같은:

# ls /dev/sda1

무슨 목적으로?
dawud

나는 그렇게 생각하지 않습니다. 이외에도 도구가 필요합니다 ls.
strugee September

아니요. 달성하려는 목표를 말씀해주십시오.
jasonwryan

1
그 시간 동안 일부 장치를 마운트하고 싶지만 sda1 / 2 / 3 / 4 / 5 / 6 등인지 기억하지 못합니다. 장치의 파일이 나인지 여부를 알려주기 위해 해당 장치의 파일을 나열하면됩니다. 찾고
lampoon

그건 그렇고 : (파티션이 아닌) 디스크의 이미지가있는 경우 이미지 파일 경로를 명령 줄의 첫 번째 매개 변수로 사용하여 명령 testdisk을 실행하여 파일을 볼 수 있습니다 testdisk.
Abbafei

답변:


11

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

나는이 권장 관행을 고려한다고 말할 수는 없지만 당신이 요구하는 것을 할 것입니다.


3

파일 시스템 마운트의 요점은 파일에 액세스하는 것입니다. 따라서 일반적으로 파일 시스템을 마운트하지 않고는 파일 시스템의 파일에 액세스 할 수 없습니다.

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

2

간단한 대답 : 할 수 없습니다. ls파일 시스템 드라이버가 제공하는 시스템 호출로 변환되는 표준 libc 루틴을 사용 ls하므로 파일 시스템을 마운트하지 않고는 사용할 수 없습니다 (또는 해당 시스템 호출을 사용하는 모든 것).

파일 시스템 드라이버의 일부 부분 (예 : Windows에서 Ext2 파일 시스템을 읽기 위해 존재 함)의 사본을 가짐으로써이를 피할 수있는 유틸리티를 작성할 수 있지만 이는 실용적이지 않습니다.

문제가 파티션을 식별하는 것이라면 파티션 이름을위한 공간이있는 GPT (파티션 당 72 바이트)를 사용하는 것이 좋습니다. 일부 기존 솔루션 (예 : Linux MD 또는 LVM)에서도 이름을 지정할 수 있습니다.


1

앞에서 설명한 것처럼 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"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.