web-dev-qa-db-ja.com

マウントとマウント-oループの違いは何ですか

ubuntu.isoという名前のisoファイルがあります。

コマンドmount ubuntu.iso /mntmountできます。マウントした後、コマンドdf -h/dev/loop0 825M 825M 0 100% /mntの外側から見ることができます。

ただし、コマンドmount -o loop ubuntu.iso /mntを実行すると、同じ結果が得られます。

知っているように、ループデバイスを使用すると、isoファイルにデバイスとしてアクセスできます。これが、オプション-o loopを追加する理由だと思います。しかし、mount ubuntu.iso /mntだけを実行しても、isoファイルにアクセスできます。

mountmount -o loopの違いがわかりません。

31
Yves

どちらのバージョンもループデバイスを使用しており、同じ結果が得られます。ショートバージョンは、近年mountに追加された「賢さ」に依存しています。 mount -o loopは、ループデバイスを使用するようにmountに明示的に指示します。ループデバイス自体をmountまで残します。これにより、使用可能なデバイスが検索され、セットアップされて使用されます。 (でもデバイスを指定できます(例:mount -o loop=/dev/loop1。)

賢いのは、マウントするファイルを指定すると、mountは必要に応じて自動的にループデバイスを使用してマウントすることです—ie、ファイルシステムが指定されていない、またはlibblkidはファイルシステムがブロックデバイスでのみサポートされていると判断します(したがって、ファイルをブロックデバイスに変換するにはループデバイスが必要です)。

mount manページのループデバイスセクション に詳細があります。

49
Stephen Kitt

loopデバイスは、主にlosteupコマンドで制御されます。そう losetup -aは、使用されているループデバイスと添付ファイルの概要を示します。 mountコマンドはブロックデバイスのみをマウントできます。ループデバイスは、ファイル(キャラクターデバイス)から仮想ブロックデバイスを作成できます。

実際、古いLinuxシステムではmountfileを正しいデバイスとして認識できなかったため、これらのコマンドには大きな違いがありますマウントされますが、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)ファイルシステムのサポートがインストールされている場合。

9
schweik

mount ubuntu.iso /mntmount -o loop ubuntu.iso /mntの間に違いはありません。

1つ目は、2つ目と同じように透過的に処理されます。

7
Emmanuel Rosa