Linuxターミナルからストレージデバイスをマウントおよびアンマウントする方法
LinuxおよびmacOSなどのUnixライクなオペレーティングシステムのファイルシステムは、ターミナルを使用してマウント、アンマウント、および再マウントできます。これは強力で用途の広いツールです。知っておくべきことはすべてここにあります。
Linuxファイルシステム
Linux、macOS、およびその他のUnixライクなオペレーティングシステムのファイルシステムは、たとえばWindowsのように、ストレージデバイスに個別のボリューム識別子を使用しません。Windowsは、各ボリュームにC:やD:などのドライブ文字を割り当てます。各ボリュームのファイルシステムは、そのドライブ文字の下にあるディレクトリのツリーです。
Linuxでは、ファイルシステムはオールインワンのディレクトリツリーです。マウントされたストレージデバイスのファイルシステムはそのツリーに移植されているため、1つのまとまりのあるファイルシステムの不可欠な部分のように見えます。新しくマウントされたファイルシステムには、マウント先のディレクトリからアクセスできます。そのディレクトリは、そのファイルシステムのマウントポイントと呼ばれます。
多くのファイルシステムは、起動時または実行時にコンピューターに接続されたストレージボリュームとしてオンザフライで自動マウントされます。慎重なシステム管理者は、ランタイム自動マウント機能をオフにして、システムへの接続を制御できるようにすることができます。
これは、実行時に接続されたストレージデバイスが自動マウントされない可能性があり、手動でマウントする必要があることを意味します。ファイルシステムを手動でマウントすると、マウントポイントの場所や、ファイルシステムを読み取り専用にするか読み取り/書き込みにするかなど、そのファイルシステムについて決定できます。
必要がない場合でも、選択する場合でもmount
、umount
および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にはsquashfs
、snap
コマンドを使用してインストールされたすべてのアプリケーション用に作成された疑似ファイルシステムがあります。誰がそれらすべてを見たいですか?
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デバイスファイルを確立する必要があります。これを行うには、df
throughの出力をパイプ処理し、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@marineville
Raspberry Piに接続されているため、ターミナルウィンドウのプロンプトがに変わります。
で共有ディレクトリの内容を一覧表示し/media/pi/USB64/Backup
ます。内容は2つのディレクトリで、1つはと呼ばれdave
、もう1つはと呼ばれpat
ます。これで、Samba共有をマウントするときに何が期待できるかがわかりました。
彼らは、入力exit
ラズベリーパイから切断すると、プロンプトの変更はにバックアップdave@howtogeek
。
Sambaを使用するには、cifs-utils
パッケージをインストールする必要があります。
apt-get
Ubuntuまたは別の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つのフォルダと呼ばれる見ることができるdave
とpat
。
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
と、ro
がrw
(強調表示)に置き換えられている ことがわかります。これで、ファイルシステムは読み取り/書き込みモードになります。
マウント| 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つの理由からここでは説明していません。
- 予期しない動作をする可能性があります。
- これは永続的ではなく、再起動するたびに繰り返す必要があります。
DevuanLinuxはinitnotを使用し SysV
ますsystemd
。コンピューターに最新バージョンのDevuanがロードされ、テストされました。-M
そのシステム上で予想通り(移動)オプションが働いていました。
(移動)オプションのsystemd
問題は別として、-M
の使用法mount
とumount
簡単さを見つける必要があります。これらは、損傷したシステムに直面したときに袖を上げるための優れたコマンドであり、ファイルシステムを手でつなぎ合わせる必要があります。