ubuntu.iso
という名前のisoファイルがあります。
コマンドmount ubuntu.iso /mnt
でmount
できます。マウントした後、コマンドdf -h
:/dev/loop0 825M 825M 0 100% /mnt
の外側から見ることができます。
ただし、コマンドmount -o loop ubuntu.iso /mnt
を実行すると、同じ結果が得られます。
知っているように、ループデバイスを使用すると、isoファイルにデバイスとしてアクセスできます。これが、オプション-o loop
を追加する理由だと思います。しかし、mount ubuntu.iso /mnt
だけを実行しても、isoファイルにアクセスできます。
mount
とmount -o loop
の違いがわかりません。
どちらのバージョンもループデバイスを使用しており、同じ結果が得られます。ショートバージョンは、近年mount
に追加された「賢さ」に依存しています。 mount -o loop
は、ループデバイスを使用するようにmount
に明示的に指示します。ループデバイス自体をmount
まで残します。これにより、使用可能なデバイスが検索され、セットアップされて使用されます。 (でもデバイスを指定できます(例:mount -o loop=/dev/loop1
。)
賢いのは、マウントするファイルを指定すると、mount
は必要に応じて自動的にループデバイスを使用してマウントすることです—ie、ファイルシステムが指定されていない、またはlibblkid
はファイルシステムがブロックデバイスでのみサポートされていると判断します(したがって、ファイルをブロックデバイスに変換するにはループデバイスが必要です)。
mount
manページのループデバイスセクション に詳細があります。
loop
デバイスは、主にlosteup
コマンドで制御されます。そう losetup -a
は、使用されているループデバイスと添付ファイルの概要を示します。 mount
コマンドはブロックデバイスのみをマウントできます。ループデバイスは、ファイル(キャラクターデバイス)から仮想ブロックデバイスを作成できます。
実際、古いLinuxシステムではmount
がfileを正しいデバイスとして認識できなかったため、これらのコマンドには大きな違いがありますマウントされますが、mountコマンドが多くの機能を使用して完了した間、losetupコマンドを呼び出して結果をマウントすることを自分で決定できるようになります。しかし、ディスク全体のイメージを取得した場合、ISOフォーマットではなく、例えば最初にMBRを使用すると、mountコマンドはそれを認識できず、使用可能なパーティションを見つける必要があります(例:parted disk_image.raw unit B print
コマンド)yoursefを実行し、次のようにフルオプションのマウントコマンドを使用してマウントします。
mount disk_image.raw /mntpoint/ -o loop,offset=${OFFSET_of_PARTITION}
この構文では、ループデバイスは指定されておらず、システムが最初の空き(/dev/loop0
、/dev/loop1
etc)マウントコマンドの他の新機能の1つは、マウントされたブロックデバイスのファイルシステムタイプを指定する必要がないことです(あなたの場合-t iso9660
)ファイルシステムのサポートがインストールされている場合。
mount ubuntu.iso /mnt
とmount -o loop ubuntu.iso /mnt
の間に違いはありません。
1つ目は、2つ目と同じように透過的に処理されます。