マウントせずにデバイスにls


9

ls最初にマウントせずにデバイスで実行することはできますか?
このようなもの:

# ls /dev/sda1

どんな目的で?
dawud 2013

私はそうは思いません。あなたは間違いなく他のツールが必要になりますls
2013

いいえ。達成しようとしていることを教えてください。
jasonwryan 2013

1
そのときは、いくつかのデバイスをマウントしたいのですが、そのsda1 / 2/3/4/5/6などかどうかは覚えていません。そのデバイス上のファイルを一覧表示して、そのデバイスが探しています
ランプーン

ちなみに、(パーティションではなく)ディスクのイメージがある場合、コマンドラインの最初のパラメータとしてイメージファイルパスを指定してコマンドをtestdisk実行するtestdiskと、そのファイルを表示できる場合があります。
アッバフェイ2018年

回答:


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の場合、危険で使いにくいプログラムを呼び出すのではなく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ファイルシステムを読み取るために存在するもの)を用意することでこれを回避するユーティリティを作成できますが、これは実際的ではありません。

問題がパーティションの識別だけである場合は、おそらく、パーティション名用のスペース(パーティションあたり72バイト)を持つGPTの使用を開始する必要があります。一部の上位ソリューション(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.