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

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

Linuxファイルシステム

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

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

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

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

必要がない場合でも、選択する場合でもmountumountおよびremountコマンドを使用すると、Linuxシステムのこの重要な側面を制御できます。

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

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

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

探しているものを見つけるために、そのデータのダンプを選択するのは難しい場合があります。

mount関心のあるファイルシステムのみをリストするように要求することで、出力を絞り込むことができます。-t(タイプ)オプションは伝え mountに報告して、ファイルシステムの種類。

マウント-ttmpfs
マウント-text4

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

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

tmpfs関心のあるファイルタイプの代わりにパラメータを使用することをお勧めします。

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

他の指標の意味:

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

関連:どのLinuxファイルシステムを使用する必要がありますか?

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

このdfコマンドを使用して、マウントされているファイルシステムとそのマウントポイントの場所を表示することもできます。

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

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

df-xスカッシュフ

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

関連:Linuxターミナルから空きディスク容量とディスク使用量を表示する方法

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

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

を使用mountして、にリストされてfstabいるすべてのファイルシステムを強制的に「更新」および再マウントできます。通常の動作条件下では、これは必要ありません。複数のファイルシステムで問題が発生した場合、それは本当に独自のものになります。

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

sudoマウント-a

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

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

関連:Linux fstabファイルとは何ですか?どのように機能しますか?

ISOイメージのマウント

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

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

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

sudo mount -t iso9660 -o loop TinyCore-current.iso / mnt

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

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

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

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

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

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

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

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

ISOイメージがマウントされます。ISOイメージは常に読み取り専用モードでマウントされることを通知するメッセージがターミナルウィンドウに表示されます。

ISOイメージの調査

マウントされたので、ファイルシステムの他の部分と同じ方法でISOイメージ内のディレクトリをナビゲートできます。ISOイメージ内のファイルを一覧表示しましょう。/mnt 覚えておくとマウントされます。

ls / mnt
ls / mnt / cde /

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

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

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

sudo umount / mnt

良いニュースはありません。報告するものがない場合は、すべてうまくいきました。

マウントポイントの作成

独自のマウントポイントを作成して使用できます。と呼ばれるものを作成isomntし、その上にISOイメージをマウントします。マウントポイントは単なるディレクトリです。したがって、を使用mkdirして新しいマウントポイントを作成できます。

sudo mkdir / media / dave / isomnt

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

sudo mount -r -t iso9660 -o loop TinyCore-current.iso / media / dave / isomnt /

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

ls / media / dave / isomnt / cde / optional

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

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

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

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

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

mkdir iso
sudoマウント-B / media / dave / isomnt / iso
ls iso
ls / media / dave / isomnt
cd iso
ls
cd cde

バインドでのumountの使用

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

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

sudo umount / media / dave / isomnt
ls iso 
sudo umount iso
ls iso

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

フロッピードライブ(フロッピーディスクが入っている)はストレージデバイスです。つまり、sd(ストレージデバイス用)デバイスファイルを使用して物理デバイスに接続します。次の無料のSDデバイスファイルを確立する必要があります。これを行うには、dfthroughの出力をパイプ処理し、grep「sd」が含まれるエントリを探します。

df | grep / dev / sd

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

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

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

sudoマウント/ dev / sdb / mnt

ファイルシステムラベル

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

-t(タイプ)オプションを使用して、ファイルシステムのみmountに関するレポートを要求 していvfatます。

マウント-l-t vfat

リストの最後に角括弧内のラベルがあります。このフロッピードライブのラベルはNORTUNです。

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

cd / mnt
ls
ls -l AMATCH.C

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

df パイプスルーgrepコマンドを繰り返してsdデバイスファイルを一覧表示すると、2つあることがわかります。

df | grep / dev / sd

フロッピードライブは、/dev/sdb期待どおりにマウントされた状態で表示されます。ドライブのフロッピーディスク上のファイルシステムは、にマウントされてい/mntます。

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

sudo umount / dev / sdb

umountレイジーオプション

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

sudo umount / dev / sdb

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

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

sudo umount -l / dev / sdb
ls
cd〜
ls / mnt

にもかかわらず、umountコマンドが発行され、ファイルシステムがまだマウントされ、ユーザは通常どおりにファイルを一覧表示することができます。

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

Samba共有のマウント

Sambaは、LinuxとUnixライクなオペレーティングシステム、およびWindowsオペレーティングシステム間でネットワーク共有に交換可能にアクセスできるようにするソフトウェアサービスのセットです。

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

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

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

ssh [email protected]
ls / media / pi / USB64 / Backup
出口

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

彼らはパスワードを提供し、認証されます。pi@marinevilleRaspberry Piに接続されているため、ターミナルウィンドウのプロンプトがに変わります。

で共有ディレクトリの内容を一覧表示し/media/pi/USB64/Backupます。内容は2つのディレクトリで、1つはと呼ばれdave、もう1つはと呼ばれpatます。これで、Samba共有をマウントするときに何が期待できるかがわかりました。

彼らは、入力exitラズベリーパイから切断すると、プロンプトの変更はにバックアップdave@howtogeek

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

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

sudo apt-get install cifs-utils

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

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

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

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

のマウントポイントに/media/dave/NASアクセスすることで、ネットワークを介してRaspberryPiの共有ディレクトリにアクセスします。私たちは、ラズベリーパイの2つのフォルダと呼ばれる見ることができるdavepat

cd / media / dave / NAS

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

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

私たちは、使用if伝えるために(入力ファイル)オプションをddからゼロ値のストリームを使用するために/dev/zero、入力ファイルとして。

of(出力ファイル)と呼ばれる新しいファイルですgeek_fs

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

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

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

これで画像ファイルが作成されます。ゼロ値しか含まれていません。

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

mkfs -t ext4 ./geek_fs

ファイルシステムが機能するために必要なのはこれだけです。

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

sudo mount ./geek_fs / media / dave / geek
sudo chown dave:users / media / dave / geek

それは機能しますか?新しいファイルシステムに変更し、ファイルをコピーして確認しましょう。

cd / media / dave / geek
cp / etc / fstab。 
ls -l

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

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

マウント-text4

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

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

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

sudo mount -r / dev / sdb / mnt
マウント| grep / mnt

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

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

sudo mount -o remount、rw / mnt

mountスルーの配管を繰り返すgrepと、rorw (強調表示)に置き換えられている ことがわかります。これで、ファイルシステムは読み取り/書き込みモードになります。

マウント| grep / mnt

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

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

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

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

sudo mount -M / mnt ./geek
ls ./geek

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

sudo mount -B / mnt ./geek
ls ./geek

元のマウントポイントを解放しないことを除けば、これは同じ実用的な結果をもたらします。

最終観察

この --make-privateオプションを使用すると、Linuxのバージョンで強制的に移動を実行することできましたsystemd。この手法は、2つの理由からここでは説明していません。

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

DevuanLinuxはinitnotを使用し  SysVますsystemd。コンピューターに最新バージョンのDevuanがロードされ、テストされました。-Mそのシステム上で予想通り(移動)オプションが働いていました。

 (移動)オプションのsystemd問題は別として、-Mの使用法mountumount 簡単さを見つける必要があります。これらは、損傷したシステムに直面したときに袖を上げるための優れたコマンドであり、ファイルシステムを手でつなぎ合わせる必要があります。