\r\n\r\n
LinuxやUnix系OS(macOSなど)のファイルシステムは、ターミナルを使用してインストール、アンインストール、再インストールが可能です。必要なものがすべて揃った、強力で多彩なツールがここにあります。
Linux、macOS、その他のUnix系OSのファイルシステムは、Windowsのようにストレージデバイスに個別のボリューム識別子を使用しません。Windowsでは、各ボリュームにC:やD:などのドライブ番号を割り当て、各ボリュームのファイルシステムはそのドライブ番号の下にあるディレクトリツリーとなります。
Linuxでは、ファイルシステムは多機能なディレクトリツリーである。マウントされたストレージデバイスは、そのファイルシステムをツリーに接ぎ木して、まとまったファイルシステムの構成要素のように見せているのである。新しくマウントされたファイルシステムには、マウントされたディレクトリからアクセスすることができます。このディレクトリは、そのファイルシステムのマウントポイントと呼ばれます。
多くのファイルシステムは、ブート時に自動的に、または実行時にコンピュータに接続されたストレージボリュームとして動的にマウントされます。慎重なシステム管理者は、システムへの接続を制御するために、ランタイムの自動マウントをオフにすることができます。
つまり、実行時に接続されたストレージデバイスは自動的にマウントされない可能性があり、手動でマウントする必要があります。ファイルシステムを手動でマウントすると、そのファイルシステムがどこにあるか、例えばマウントポイントがどこか、ファイルシステムが読み取り専用か読み取り書き込み可能か、などを決めることができます。
mount、umount、remountコマンドは、必要であろうとなかろうと、Linuxシステムのこの重要な側面を制御することができます。
マウントには多くのオプションがありますが、コンピュータにマウントされているすべてのファイルシステムを一覧表示するには、オプションは全く必要ありません。mountと入力してエンターキーを押すだけです。
mount を実行すると、接続されているすべてのファイルシステムがターミナルウィンドウにリストアップされます。
大量のデータから欲しいものを探し出すのは大変です。
t(type) オプションは、報告するファイルシステムの種類を mount に伝えます。
mount -t tmpfs mount -t ext4例えば、mount に tmpfs ファイルシステムのみをリストアップするように依頼すると、より管理しやすい出力が得られます。
tmpfsファイルシステムは、一見、通常のマウントされたファイルシステムのように見えますが、実は揮発性メモリに格納されています。tmpは、デバイス上の一時的なストレージであり、永続的なストレージではありません。
このとき、対象となるファイルタイプをtmpfsパラメータに置き換える必要があります。
また、ext4ファイルシステムを一覧表示するコマンドを発行しました。このテスト用コンピュータには、sdaデバイス(通常はプライマリハードディスク)に最初にインストールされるext4ファイルシステムと、ファイルシステムツリーのルートである/が存在します。
その他の指標では
関連:Linuxのファイルシステムはどれを使うべき?
dfコマンドは、どのファイルシステムがインストールされているか、そのマウントポイントがどこにあるかを表示するためにも使用できます。
パラメータなしのdfでは、マウントと同じように情報過多の問題が発生します。例えば、ubuntulinuxでは、snapコマンドでインストールしたアプリケーションごとにsquashfsという疑似ファイルシステムが用意されている。誰がこれを見たいんだ?
dfがこれらや他のファイルシステムタイプを強制的に無視するには、-x (除外) オプションを使用します。
df -x squashfsファイルシステムの名前、容量、使用領域と空き領域、マウントポイントなどを簡単に確認することができます。
関連:Linux端末からディスクの空き容量やディスク使用量を確認する方法
ブート時にマウントされるすべてのファイルシステムは、/etcにあるファイルシステムテーブルであるfstabというファイルにエントリを持っています。
mount を使って、fstab にリストされているすべてのファイルシステムを強制的に「リフレッシュ」し、再読み込みすることができます。通常の作業環境では、この必要はありません。複数のファイルシステムで問題がある場合は、それなりの問題があります。
sudoを使用する必要があるので、パスワードの入力を求められます。
sudo mount -a確かに、正常に動作するパソコンでは、これは少し違和感がありますね。
ただし、ファイルシステムに問題があるパソコンでは、再読み込みでクリアできる場合があります。そうならない場合は、少なくとも画面とシステムログに診断メッセージが表示され、問題の原因を突き止めることができます。
関連:Linuxのfstabファイルとその動作について教えてください。
ISOイメージは簡単にマウントすることができ、ファイルシステムの一部としてその内容にアクセスすることができます。
これはどのようなISOイメージにも対応します。この例では、たまたま非常に小さなカーネル linuxiso を使用しています。(GUI付きの小さなLinuxディストリビューションで、18MB!これより大きな.mp3ファイルをお持ちの方もいらっしゃるでしょう)。
ISOイメージと同じディレクトリで、以下のコマンドを実行します。 読み込むISOファイルの名前を置き換えてください。
sudo mount -t iso9660 -o loop TinyCore-current.iso /mntsudoを使用する必要があるため、パスワードの入力が必要です。
t (タイプ) オプションは、マウントするファイルシステムの種類を指定します。ISOファイルなので、iso9660の型指定子を付与しています。
o (opti***)フラグは、マウントに追加の引数を渡すために使用されます。
ISOイメージに添付されたループデバイスファイルを使って強制的にマウントするためにloopを使用します。ループデバイスファイルは、ファイル(ISOイメージなど)をストレージデバイスのようにマウントして処理できるようにするものです。
デバイスファイルは、接続されたデバイスが通常のファイルシステムのファイルのように見えるように、インターフェースとして使用される特別なファイルです。これは、Linuxのすべてのものの一部であり、ファイル設計の思想でもあります。
デバイスファイルには、さまざまな種類があります。以前、このテストマシンにマウントされた唯一のext4ファイルシステムが/のsdaという名前であることに気づいた例を見ました。
より正確には、ext4ファイルシステムは、/dev/sdaデバイスファイルを介してファイルシステムに接続されたストレージデバイス上にあり、/にインストールされています。
もちろん、ISOイメージの名前を提供する必要があり、ファイルシステムをマウントする場所をmountに知らせる必要がありました。私たちは/mntを選びました。
ターミナルウィンドウに、ISOイメージは常に読み取り専用でインストールされることを示すプロンプトが表示されます。
これで、ISO イメージがマウントされたので、ファイルシステムの他の部分と同じように、ISO イメージのディレクトリを操作できるようになりました。ISOイメージに含まれるファイルを列挙してみましょう。mntにマウントされていることを記憶しています。
ls /mnt ls /mnt/cde/マウントされたファイルシステムをアンマウントするには、umountコマンドを使用します。u "と "m "の間に "n "がないことに注意してください - コマンドはumountでunmountではありません"
umountにどのファイルシステムをアンマウントするのか伝える必要があり、そのためにファイルシステムのマウントポイントを提供します。
sudo umount /mntNo news is good news.報告することがなければ、すべてうまくいくのです。
独自のマウントポイントを作成し、使用することができます。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 image/media/dave/isomntのマウントポイントをホームディレクトリの新しいISOディレクトリにバインドすることにします。
元のマウントポイント /media/dave/isomnt と新しい ISO ディレクトリを経由して ISO イメージにアクセスすることができます。B(バインド)オプションは、マウントポイント名とバインド先のディレクトリ名を要求します。
mkdir iso sudo mount -B /media/dave/isomnt/ iso ls iso ls /media/dave/isomnt cd iso ls cd cdeマウントポイントを他のディレクトリにバインドしているファイルシステムは、そのマウントポイントとバインドポイントをアンマウントする必要があります。
ファイルシステムを元のマウントポイントからアンマウントしても、そのバインドディレクトリからファイルシステムにアクセスすることは可能です。また、そのディレクトリからファイルシステムをアンマウントしておく必要があります。
sudo umount /media/dave/isomnt ls iso sudo umount iso ls isoフロッピーディスクドライブ(中にフロッピーディスクが入っている)は記憶装置の一つです。つまり、sd(for storage device)デバイスファイルは、物理デバイスに接続するために使用されることになります。次の無料のsdデバイスファイルがどれかを判断しなければならない。dfの出力をgrepでパイプし、"sd "を含むエントリーを探せばいいのです。
df | grep /dev/sdこのコンピュータでは、/dev/sdaというsdデバイスファイルが1つだけ使用されています。これは/dev/sdaである。 次にリリースされるsdデバイスファイルは/dev/sdbである。 つまり、フロッピードライブをコンピュータに接続するとき、Linuxは/dev/sdbを使ってフロッピードライブに接続することになる。
フロッピーディスクドライブのフロッピーディスクにファイルシステムをマウントするよう、/dev/sdbを/mntのマウントポイントにアタッチするよう、mountに指示することにします。
フロッピーディスク**をフロッピーディスクドライブに接続し、フロッピーディスクドライブをパソコンのUSBポートに接続します。 次のコマンドを実行します。
sudo mount /dev/sdb /mntmount の -l (label) オプションで、ファイルシステムにどのようなラベルが貼られているか (もしあれば) を調べることができます。ラベルは恣意的な名前に過ぎない。機能的な使い道がないのです。
t (タイプ) オプションを使用して、vfat ファイルシステムのみを報告するよう mount に要求しています。
mount -l -t vfatこのフロッピードライブのラベルは「NORTUN」です。
フロッピーディスクドライブには、/mntマウントポイントを介してアクセスすることができます。
cd /mnt ls ls -l AMATCH.Cフロッピーディスクには、C言語のソースコード・ファイルが収録されています。あるファイルの日付スタンプを見ると、最終更新日は1992年10月となっている。おそらく、多くの読者よりも古いものだと思います。(もちろん、ノートンのレーベルとしての意義は、時の流れの中で失われていることは言うまでもない)。
grepコマンドでdfパイプを繰り返し、sdのデバイスファイルをリストアップすると、2つになっていることがわかります。
df | grep /dev/sdフロッピーディスクドライブは/dev/sdbに予想通り表示され、ドライブ内のフロッピーのファイルシステムは/mntにマウントされています。
フロッピーをアンマウントするには、umountを使い、引数としてデバイスファイルを渡します。
sudo umount /dev/sdbアンインストールしようとしたときに、あなた(または他のユーザー)がファイルシステムを使用していた場合はどうなりますか?アンインストールは失敗します。
sudo umount /dev/sdbこれは、アンマウントしようとしているファイルシステム上にユーザーの現在の作業ディレクトリがあるために失敗します。Linuxは賢いので、あなたが座っているブランチを切断させることはありません。
これを克服するには、-l (lazy)オプションを使用します。これは、ファイルシステムが安全にアンマウントできるようになるまで umount を待機させるものです。
sudo umount -l /dev/sdb ls cd ~ ls /mntumountコマンドを発行しても、ファイルシステムはマウントされており、ユーザーは通常通りファイルを一覧することができます。
mntにあるファイルをリストアップしようとしても、結果は得られません。
Sambaは、LinuxやUnix系OS、Windows系OSの間で、ネットワーク共有への交換アクセスを可能にするソフトウェアサービス群です。
Sambaのセットアップは、この記事の範囲外です。しかし、提供されたSambaの共有にアクセスできるのであれば、Linuxでマウントする方法です。
テスト機と同じネットワークに接続されているRaspberry PiにSambaの共有があります。これはBackupというディレクトリで、Sambaを「share」と名付けています。共有ディレクトリは、PiにインストールされたUSBメモリにあります。
ユーザー名はpi、raspberry piのネットワーク名はmarineville.localです。
ssh [email protected] ls /media/pi/USB64/Backup exitユーザーはSSHコマンドを発行し、Raspberry Piのパスワードの入力を促されます。
パスワードを入力して認証されます。Raspberry Piに接続されているため、ターミナルウィンドウのプロンプトがMarineville piに変化しています。
それらは、/media/pi/USB64/Backupにある共有ディレクトリの内容をリストアップしています。内容は、daveとpatという2つのディレクトリにある。これで、Sambaの共有をインストールするときに何が起こるかわかった。
Raspberry Piとの接続を解除するためにexitと入力すると、プロンプトはDave @howtogeekに戻ります。
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コマンドの各パーツを分解してみましょう。
マウントポイントを/media/dave/NASにすることで、ネットワーク経由でRaspberry Pi上の共有ディレクトリにアクセスできるようになりました。Raspberry PiにはDaveとPatという2つのフォルダがあることがわかる。
cd /media/dave/NASddコマンドでイメージファイルを作成し、その中にmkfsでファイルシステムを作成することができます。このファイルシステムをマウントすることができます。これはマウントの練習や実験に適しています。
ここでは、if (input file)オプションを使って、/dev/zeroからのゼロ値ストリームを入力ファイルとして使用するようにddに指示します。
の (出力ファイル) は geeku fs という新しいファイルである。
bs(ブロックサイズ)オプションを使って、1MBのブロックサイズを要求しています。
ここでは、countオプションを使って、ddに20ブロックを出力ファイルに含めるように指示しています。
dd if=/dev/zero of./geek_fs bs=1M count=20ゼロ値のみを含む画像ファイルを作成してくれる。
mkfsコマンドを使用すると,geekkuのfsファイルに作業用のファイルシステムを作成することができます.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 を使用し、-t (type) オプションを使用して出力を ext4 ファイルシステムに制限すると、現在マウントされた ext4 ファイルシステムが 2 つあることがわかります。
mount -t ext4ファイルシステムを読み込み専用(テスト用)の状態から読み書き可能(本番用)の状態にするために、-o reload オプションを使用してファイルシステムを再読み込みします。
もう一度、フロッピーディスクドライブを読み込んでみましょう。今回は、-r(読み取り専用)フラグを使用します。その後、grepでパイプマウントし、フロッピーファイルシステムの詳細を見ていきます。
sudo mount -r /dev/sdb /mnt mount | grep /mntご覧のように、ハイライトされたroは、ファイルシステムが読み取り専用でロードされていることを示します。
rw (read/write) フラグ付きの -o remount オプションを使用すると、1つのコマンドでファイルシステムのアンマウントと新しい設定での再マウントが可能です。
sudo mount -o remount,rw /mntgrep repeat mount によるパイプ表示 ro を rw (ハイライト) に変更しました。
mount | grep /mnt以前は、ファイルシステムをアンマウントし、別のマウントポイントに再マウントすることが、1つのコマンドで可能でした。
特にmountの-M(move)オプションは、これを可能にします。ただし、systemdに移行したLinuxディストリビューションには適用されなくなった。これは大御所のほとんどがそうです。
ファイルシステムを/mntから.NETに移動させようとした場合。/geekでは、失敗し、以下のようなエラーメッセージが表示されます。ファイルシステム上のファイルを一覧表示しようとしています。/geekは何も結果を返しません。
sudo mount -M /mnt ./geek ls ./geek解決策としては、以前、元のロードポイントを新しいロードポイントにバインドするために使用した、-B(バインド)オプションを使用することです。
sudo mount -B /mnt ./geek ls ./geekこれは、元のマウントポイントが解放されないことを除けば、実際と同じ結果になります。
makeprivateオプションを使用すると、systemd版のLinuxで強制的に移動します。ここでこの手法を紹介しない理由は2つあります。
Devuan LinuxはsystemdではなくSysV initを使用しています。 コンピュータに最新版のDevuanを搭載してテストしました。このシステムでは、-M(move)オプションは期待通りに動作します。
systemd の -M (move) オプションの問題を除けば、mount と umount は非常に使いやすいと思うはずです。これらのコマンドは、破損したシステムに直面し、ファイルシステムを手動で縫い合わせる必要がある場合に非常に便利です。