技術ノート Linux Linux ターミナルからストレージ デバイスをマウントおよびアンマウントする方法

Linux ターミナルからストレージ デバイスをマウントおよびアンマウントする方法

重要なポイント

  • Linux および Unix 系オペレーティング システムのファイル システムは、ターミナルを使用してマウント、アンマウント、再マウントできます。
  • Linux のファイル システムはオールインワンのディレクトリ ツリーであり、マウントされたストレージ デバイスはファイル システムの不可欠な部分として表示されます。
  • mount および umount コマンドを使用すると、ユーザーはシステムへの接続を制御し、マウント ポイントや読み取り/書き込み権限などのファイル システムに関する決定を行うことができます。

Linux および macOS などの Unix 系オペレーティング システムのファイル システムは、ターミナルを使用してマウント、アンマウント、再マウントできます。これは強力で多用途のツールです。知っておくべきことはすべてここにあります。

Linux ファイル システム

Linux、macOS、およびその他の Unix 系オペレーティング システム のファイル システムは、Windows のようにストレージ デバイスに個別のボリューム識別子を使用しません。 Windows は各ボリュームに C: や D: などのドライブ文字を割り当てます。各ボリュームのファイル システムは、そのドライブ文字の下にあるディレクトリのツリーです。

Linux では、ファイル システムはオールインワンのディレクトリ ツリーです。マウントされたストレージ デバイスのファイル システムはそのツリーに移植されているため、1 つの結合したファイル システムの不可欠な部分であるように見えます。新しくマウントされたファイル システムは、マウント先のディレクトリを介してアクセスできるようになります。そのディレクトリは、そのファイル システムのマウント ポイントと呼ばれます。

多くのファイル システムは、起動時または実行時にコンピュータに接続されるストレージ ボリュームとしてオンザフライで自動マウントされます。慎重なシステム管理者は、ランタイムの自動マウント機能をオフにして、システムへの接続を制御できるようにすることができます。

つまり、実行時に接続されたストレージ デバイスは自動マウントされず、手動でマウントする必要がある可能性があります。ファイル システムを手動でマウントすると、マウント ポイントをどこにするか、ファイル システムを読み取り専用にするか読み取り/書き込みにするかなど、そのファイル システムについて決定できます。

必然か選択によるかにかかわらず、 mount umount 、および remount コマンドを使用すると、Linux システムのこの重要な側面を制御できるようになります。

Linux ターミナルからストレージ デバイスをマウントおよびアンマウントする方法

マウントを使用してファイル システムを問い合わせる

Mount には 非常に多くのオプション がありますが、コンピュータにマウントされているすべてのファイル システムを一覧表示するのにオプションはまったく必要ありません。 mount と入力して Enter キーを押すだけです。

mount 、接続されているすべてのファイル システムをターミナル ウィンドウに一覧表示します。

大量のデータの中から探しているものを見つけ出すのは難しい場合があります。

関心のあるファイル システムのみをリストするよう mount に依頼することで、出力を絞り込むことができます。 -t (タイプ) オプションは、レポートするファイル システムのタイプを mount 指示します。

マウント -t tmpfs

マウント -t ext4

例として、 tmpfs ファイル システムのみをリストするように mount 依頼しました。はるかに管理しやすい出力が得られます。

tmpfs ファイル システムは、通常のマウントされたファイル システムであるかのように見えますが、実際には永続ストレージ デバイスではなく、揮発性メモリ (tmp は一時の略) に保存されます。

tmpfs パラメータを、関心のあるファイル タイプに置き換えることができます。

ext4 ファイル システムを一覧表示するコマンドも発行しました。このテスト コンピューターには、単一の ext4 ファイル システムがあり、デバイス sda (最初にマウントされたストレージ デバイス (通常はメイン ハード ドライブ)) 上にあり、ファイル システム ツリーのルートである / にマウントされています。

他の指標は次のことを意味します。

  • rw: ファイル システムは読み取りおよび書き込み可能です。
  • relatime: カーネルは、ファイル アクセスと変更メタデータを記録するために最適化されたスキームを使用しています。
  • errors=remount -o: 十分に重大なエラーが検出された場合、ファイル システムは読み取り専用モードで再マウントされ、診断が可能になります。
Linux ターミナルからストレージ デバイスをマウントおよびアンマウントする方法

df を使用してファイル システムを問い合わせる

df コマンドを使用 して、どのファイル システムがマウントされているか、およびそのマウント ポイントがどこにあるかを表示する こともできます。

パラメーターを指定せずに df 使用すると、 mount と同じ情報過負荷の問題が発生します。一例として、Ubuntu Linux では、 snap コマンドを使用してインストールされたアプリケーションごとに squashfs 疑似ファイル システムが作成されます。誰がそれらすべてを見たいと思うでしょうか?

df それらを強制的に無視させるには、または他のファイル システム タイプを無視するには、 -x (除外) オプションを使用します。

 df -x スカッシュfs

ファイル システムの名前、その容量、使用済み領域と空き領域、およびマウント ポイントを簡単に確認できます。

Linux ターミナルからストレージ デバイスをマウントおよびアンマウントする方法

fstab でのすべてのファイル システムの再マウント

ブート時にマウントされるすべてのファイル システムには、 fstab というファイル内にエントリがあります。これは /etc 内にあるファイル システム テーブルです。

mount 使用すると、強制的に「リフレッシュ」し、 fstab にリストされているすべてのファイル システムを再マウントできます。通常の動作条件では、これは必要ありません。複数のファイル システムに問題がある場合、これが真価を発揮します。

sudo を使用する必要があるため、パスワードの入力を求められます。

 sudo マウント -a

確かに、正しく動作しているコンピュータでは、少々圧倒されます。

ただし、ファイル システムに問題があるコンピュータでは、再マウントによって問題が解決される場合があります。それが起こらない場合でも、少なくとも画面とシステム ログに診断メッセージが表示され、問題の原因を見つけることができます。

Linux ターミナルからストレージ デバイスをマウントおよびアンマウントする方法

ISO イメージのマウント

ISO イメージをマウントするのは簡単なので、ファイル システムの一部としてその内容にアクセスできます。

これはどの ISO イメージでも機能します。この例では、サイズが小さくてダウンロードが簡単なので、 たまたま Tiny Core Linux ISO を使用しています。 (GUI を備えた小さな Linux ディストリビューションで、18 MB です。おそらくそれより大きな .mp3 ファイルがあるでしょう。)

ISO イメージと同じディレクトリで、次のコマンドを実行します。マウントする ISO ファイルの名前に置き換えます。

 sudo mount -t iso9660 -o ループ TinyCore-current.iso /mnt

sudo を使用する必要があるため、パスワードを入力する必要があります。

-t (タイプ) オプションは、マウントするファイル システムのタイプを mount 指示します。これは ISO ファイルであるため、 iso9660 タイプ指定子が提供されます。

-o (オプション) フラグは、追加のパラメータを mount に渡すために使用されます。パラメータは loop です。

ISO イメージに接続するためにループ デバイス ファイルを使用するために loop mount 強制的にマウントしています。ループ デバイス ファイルを使用すると、ファイル (ISO イメージなど) をマウントし、ストレージ デバイスであるかのように扱うことができます。

デバイス ファイルは、接続されたデバイスが通常のファイル システム ファイルであるかのように見えるようにするためのインターフェイスとして使用される特別なファイルです。これは 、Linux におけるすべてのファイル 設計哲学の一部です。

デバイス ファイルにはさまざまな種類があります。以前に、このテスト マシン上の唯一の ext4 ファイル システムが / にマウントされており、 sda と呼ばれていることに注目したときに確認しました。

より正確に言うと、その ext4 ファイル システムは /dev/sda デバイス ファイルを介してファイル システムに接続されたストレージ デバイス上にあり、そのストレージ デバイス上のファイル システムは / にマウントされています。

もちろん ISO イメージの名前を指定する必要があり、ファイル システムをマウントする場所を mount に知らせる必要があります。 /mnt を選択しました。

ISOイメージがマウントされます。 ISO イメージは常に読み取り専用モードでマウントされるという注意事項がターミナル ウィンドウに表示されます。

Linux ターミナルからストレージ デバイスをマウントおよびアンマウントする方法

ISO イメージの探索

これでマウントされたので、ファイル システムの他の部分と同じ方法で ISO イメージ内のディレクトリを移動できます。 ISO イメージ内のファイルをリストしてみましょう。 /mnt remember にマウントされます。

 ls /mnt

 ls /mnt/cde/ 

Linux ターミナルからストレージ デバイスをマウントおよびアンマウントする方法

ISO イメージのアンマウント

マウントされたファイル システムをアンマウントするには、 umount コマンドを使用します。 「u」と「m」の間に「n」がないことに注意してください。コマンドは「 umount 」ではなく、umount です。

どのファイルシステムをアンマウントするかを umount 指示する必要があります。これを行うには、ファイル システムのマウント ポイントを指定します。

 sudo umount /mnt

ニュースがないのは良いニュースです。何も報告がなければ、すべてはうまくいきました。

マウントポイントの作成

独自のマウント ポイントを作成して使用できます。 isomnt という名前のファイルを作成し、そこに ISO イメージをマウントします。マウント ポイントは単なるディレクトリです。したがって、 mkdir を使用して新しいマウント ポイントを作成できます。

 sudo mkdir /media/dave/isomnt

これで、以前と同じコマンド形式を使用して ISO イメージをマウントできるようになります。今回は /mnt にマウントせず、 /media/dave/isomnt/ にマウントします。

 sudo mount -r -t iso9660 -o ループ TinyCore-current.iso /media/dave/isomnt/

これで、新しいマウント ポイントからマウントされたファイル システムにアクセスできるようになりました。

 ls /media/dave/isomnt/cde/オプション

しかし、その道のりは非常に長くなっています。それはすぐに面倒になってしまいます。それについて何かをしましょう。

マウントポイントのバインド

マウント ポイントを別のディレクトリにバインドできます。マウントされたファイル システムには、元のマウント ポイントまたはそれにバインドされているディレクトリを通じてアクセスできます。

これが実際に動作した例です。ホーム ディレクトリに iso というディレクトリを作成します。次に、ISO イメージ /media/dave/isomnt のマウント ポイントをホーム ディレクトリ内の新しい iso ディレクトリにバインドします。

元のマウント ポイント /media/dave/isomnt と新しい iso ディレクトリを介して ISO イメージにアクセスできるようになります。 -B (バインド) オプションには、マウント ポイントの名前と、それをバインドするディレクトリの名前が必要です。

 mkdir iso

 sudo mount -B /media/dave/isomnt/iso

 lsiso

 ls /media/dave/isomnt

 CD ISO

 ls

 CD CD

バインドでの umount の使用

マウント ポイントが別のディレクトリにバインドされているファイル システムは、そのマウント ポイントとバインド ポイントからアンマウントする必要があります。

ファイル システムを元のマウント ポイントからアンマウントしても、バインドされたディレクトリからファイル システムにアクセスできます。ファイル システムもそのディレクトリからアンマウントする必要があります。

 sudo umount /media/dave/isomnt

 lsiso

 sudo umount ISO

 lsiso

フロッピーディスクのマウント

フロッピー ドライブ (フロッピー ディスクが入ったもの) は記憶装置です。つまり、物理デバイスへの接続には sd (ストレージ デバイスの) デバイス ファイルが使用されます。次の空き SD デバイス ファイルがどれであるかを確認する必要があります。これを行うには、 df の出力を grep にパイプし、「sd」を含むエントリを検索します。

 DF | grep /dev/sd

このコンピュータでは、単一の sd デバイス ファイルが使用されています。これは /dev/sda です。次に発行される SD デバイス ファイルは /dev/sdb になります。つまり、フロッピー ドライブをコンピュータに接続すると、Linux は /dev/sdb を使用してフロッピー ドライブに接続します。

/dev/sdb に接続されているフロッピー ドライブ内のフロッピー ディスク上のファイル システムを /mnt マウント ポイントにマウントするように mount 指示します。

フロッピー ディスクをフロッピー ドライブに挿入し、フロッピー ドライブをコンピュータの USB ポートに接続します。次のコマンドを発行します。

 sudo マウント /dev/sdb /mnt

ファイルシステムラベル

mount -l (ラベル) オプションを使用すると、ファイル システムにどのようなラベルが付けられているか (存在する場合) を確認できます。ラベルは任意の名前にすぎません。機能的な目的はありません。

-t (type) オプションを使用して、 vfat ファイル システムのみについてレポートするように mount 依頼しています。

マウント -l -t vfat

ラベルはリストの最後に角かっこで囲まれています。このフロッピー ドライブのラベルは NORTUN です。

/mnt マウント ポイントを介してフロッピー ドライブにアクセスできます。

 cd /mnt

 ls

 ls -l AMATCH.C

フロッピーには C 言語の ソース コード ファイルが含まれています。あるファイルの日付スタンプは、そのファイルが最後に変更されたのが 1992 年 10 月であることを示しています。おそらく、多くの読者よりも古いファイルです。 (言うまでもなくNORTUNというレーベルの意味は時の流れの中で失われています。)

grep コマンドを介してパイプされた df を繰り返して sd デバイス ファイルをリストすると、それらが 2 つあることがわかります。

 DF | grep /dev/sd

フロッピー ドライブは予想どおり /dev/sdb にマウントされていると表示されます。ドライブのフロッピー ディスク上のファイル システムは /mnt にマウントされます。

フロッピーをアンマウントするには、 umount 使用し、パラメータとしてデバイス ファイルを渡します。

 sudo umount /dev/sdb

umount Lazy オプション

あなた (または別のユーザー) がそのファイル システムを使用している場合、それをアンマウントしようとするとどうなりますか?アンマウントは失敗します。

 sudo umount /dev/sdb

ユーザーの現在の作業ディレクトリがアンマウントしようとしているファイル システム内にあるため、失敗しました。 Linux は、あなたが座っているブランチを見送ることを許さないほど賢いのです。

これを解決するには、 -l (lazy) オプションを使用します。これにより、 umount ファイル システムが安全にアンマウントできるようになるまで待機します。

 sudo umount -l /dev/sdb

 ls

 CD〜

 ls /mnt

umount コマンドが発行されても、ファイル システムはマウントされたままなので、ユーザーは通常どおりファイルを一覧表示できます。

ユーザーがディレクトリをホーム ディレクトリに変更するとすぐに、フロッピー ファイル システムは解放され、アンマウントされます。 /mnt 内のファイルをリストしようとしても結果は得られません。

Samba 共有のマウント

Samba は、Linux および Unix 系オペレーティング システムと Windows オペレーティング システム間でネットワーク共有に相互にアクセスできるようにする 一連のソフトウェア サービス です。

Samba のセットアップについては、この記事の範囲外です。ただし、利用可能になった Samba 共有へのアクセスが承認されている場合は、この方法で Linux に Samba 共有をマウントできます。

テスト マシンと同じネットワークに接続されている Raspberry Pi には Samba 共有があります。 Samba に「share」という名前を付けた Backup というディレクトリです。 SSH 接続を確立して、共有ディレクトリの内容を見てみましょう。共有ディレクトリは、Pi にマウントされた USB スティック上にあります。

ユーザー名は pi 、Raspberry Pi のネットワーク名は marineville.local です。

 ssh pi@marineville.local

 ls /media/pi/USB64/バックアップ

出口

ユーザーが SSH コマンドを発行すると、Raspberry Pi パスワードの入力を求められます。

ユーザーはパスワードを入力し、認証されます。 Raspberry Pi に接続されているため、ターミナル ウィンドウのプロンプトが pi@marineville に変わります。

/media/pi/USB64/Backup にある共有ディレクトリの内容がリストされます。内容は 2 つのディレクトリで、1 つは dave 、もう 1 つは pat です。これで、Samba 共有をマウントすると何が起こるかがわかりました。

exit と入力して Raspberry Pi から切断すると、プロンプトが dave@ に戻ります。

Samba を使用するには、 cifs-utils パッケージをインストールする必要があります。

Ubuntu または別の Debian ベースのディストリビューションを使用している場合は、 apt-get 使用してこのパッケージをシステムにインストールします。他の Linux ディストリビューションでは、代わりに Linux ディストリビューションのパッケージ管理ツールを使用してください。

 sudo apt-get install cifs-utils

インストールが完了したら、次のようなコマンドを使用して共有をマウントし、状況に応じて IP アドレス、共有名、マウント ポイント (すでに存在している必要があります) を変更します。

 sudo mount -t cifs -o credentials=/etc/samba/creds,uid=1000,gid=1000 //192.168.4.13/share /media/dave/NAS

そのコマンドの各部分を分解してみましょう。

  • -t cifs: ファイル システム タイプは cifs です。
  • -o credentials=/etc/samba/creds,uid=1000,gid=1000: オプション パラメーターは、R​​aspberry Pi ユーザーのユーザー名とパスワードが含まれる安全な creds というファイルへのパスです。ファイル システムのルートの所有者とグループを設定するために使用されるユーザー ID (UID) とグループ ID (GID)。
  • //192.168.4.13/share: Samba 共有があるデバイスのネットワーク上の場所、および共有ディレクトリの Samba 名。共有のルートは Backup というディレクトリですが、その Samba 共有名は share に設定されています。
  • /media/dave/NAS: マウント ポイントの名前。事前にマウント ポイントを作成する必要があります。

/media/dave/NAS のマウント ポイントにアクセスすることで、ネットワークを介して Raspberry Pi 上の共有ディレクトリにアクセスします。 Raspberry Pi には、 dave pat という 2 つのフォルダーがあることがわかります。

 cd /メディア/デイブ/NAS

ファイルシステムの作成とマウント

dd コマンドを使用してイメージ ファイルを作成し、次に mkfs を使用してその中にファイル システムを作成できます。その後、そのファイル システムをマウントできるようになります。これは、 mount を練習して実験する良い方法です。

if (入力ファイル) オプションを使用して /dev/zero からのゼロ値のストリームを入力ファイルとして使用するように dd に指示します。

of (出力ファイル) は geek_fs という新しいファイルです。

bs (ブロック サイズ) オプションを使用して、1 MB のブロック サイズを要求しています。

count オプションを使用して、出力ファイルに 20 ブロックを含めるよう dd に指示します。

 dd if=/dev/zero of./geek_fs bs=1M count=20

これにより、イメージ ファイルが作成されます。ゼロ値のみが含まれます。

mkfs コマンドを使用して、 geek_fs ファイル内に作業ファイル システムを作成できます。 -t (タイプ) オプションを使用すると、ファイル システムのタイプを選択できます。 ext4 システムを作成しています。

 mkfs -t ext4 ./geek_fs

ファイル システムを動作させるために必要なのはこれだけです。

これを /media/dave/geek にマウントし、 chown を使用して所有者とグループの所有権を設定し、アクセスを許可しましょう。

 sudo マウント ./geek_fs /media/dave/geek

 sudo chown dave:users /media/dave/geek

効果ありますか?新しいファイルシステムに変更し、ファイルをコピーして確認してみましょう。

 cd /メディア/デイブ/オタク

cp /etc/fstab 。

 ls -l

ディレクトリを新しいファイル システムに変更することができ、 /etc/fstab ファイルのコピーも正常に作成できました。効いてるよ!

mount を使用してマウントされたファイル システムをリストし、 -t (type) オプションを使用してその出力を ext4 ファイル システムに制限すると、マウントされた ext4 ファイル システムが 2 つあることがわかります。

マウント -t ext4

ファイルシステムの再マウント

ファイル システムを再マウントするには、 -o remount オプションを使用します。これは通常、ファイル システムを読み取り専用 (テスト) 状態から読み取り/書き込み (実稼働) 状態に変更するために行われます。

フロッピードライブを再度マウントしましょう。今回は、 -r (読み取り専用) フラグを使用します。次に、 grep を介してパイプ mount 、フロッピー ファイル システムの詳細を確認します。

 sudo マウント -r /dev/sdb /mnt

マウント | grep /mnt

ご覧のとおり、強調表示された ro 、ファイル システムが読み取り専用でマウントされていることを示します。

-o remount オプションを rw (読み取り/書き込み) フラグとともに使用すると、1 つのコマンドでファイル システムをアンマウントし、新しい設定で再マウントできます。

 sudo mount -o remount,rw /mnt

grep を介して mount のパイプ処理を繰り返すと、 ro rw に置き換えられたことがわかります (強調表示)。ファイル システムは読み取り/書き込みモードになりました。

マウント | grep /mnt

ファイルシステムの移動(ではない)

以前は、1 つのコマンドでファイル システムをアンマウントし、別のマウント ポイントに再マウントできました。

mount -M (移動) オプションは、それを可能にするために特別に存在します。ただし、 systemd 移行した Linux ディストリビューションでは動作しなくなりました。そしてそれはほとんどの有名人です。

ファイルシステムを /mnt から ./geek に移動しようとすると失敗し、以下に示すエラー メッセージが表示されます。 ./geek を介してファイル システム内のファイルをリストしようとすると、結果が返されません。

 sudo mount -M /mnt ./geek

 ls ./オタク

回避策は、以前に元のマウント ポイントを新しいマウント ポイントにバインドするために使用した -B (バインド) オプションを使用することです。

 sudo mount -B /mnt ./geek

 ls ./オタク

元のマウント ポイントが解放されないことを除けば、実際の結果は同じになります。

最終観察

--make-private オプションを使用すると、Linux の systemd バージョンで強制的に移動を実行することができました。このテクニックは 2 つの理由からここでは紹介しません。

  1. 予期しない動作が発生する可能性があります。
  2. これは永続的なものではなく、再起動するたびに繰り返す必要がありました。

Devuan Linux は systemd ではなく SysV init を使用します。コンピューターに Devuan の最新バージョンがロードされ、テストされました。 -M (移動) オプションは、そのシステムでは期待どおりに機能しました。

-M (移動) オプションに関する systemd 問題を除けば、 mount umount の使い方は簡単であることがわかります。これらは、システムが破損した場合に備えて、手動でファイル システムを元に戻す作業を開始する必要がある場合に役立つ優れたコマンドです。

Linuxコマンド

ファイル

tar pv cat tac chmod grep diff sed ar man pushd popd fsck testdisk seq fd pandoc cd $PATH awk join jq fold uniq journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr

プロセス

エイリアス · スクリーン · トップ · ナイス · renice · 進行状況 · strace · systemd · tmux · chsh · 履歴 · at · バッチ · フリー · what · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · タイムアウト · ウォール · はい · キル · スリープ · sudo · su · タイム · groupadd · usermod · グループ · lshw · シャットダウン · 再起動 · 停止 · パワーオフ · パスワード · lscpu · crontab · 日付 · bg · fg · pidof · nohup · pmap

ネットワーキング

netstat ping ip ss whois fail2ban bmon dig finger nmap ftp curl wget who whoami w iptables ssh-keygen ufw arping firewalld

「 Linux ターミナルからストレージ デバイスをマウントおよびアンマウントする方法」に関するベスト動画選定!

LinuxサーバーからAmazon EFSをマウントするデモ(「AWSではじめるLinux入門ガイド」のデモ)
Linuxディレクトリ構造を完全解説!