1. ファイルシステムを理解する重要性
新しい講義へようこそ!今回はLinuxのファイルシステムの魅力的な世界に飛び込もう。デバイスを見つけ、その構造を理解し、どのタイプのファイルシステムがインストールされているかを学ぼう。さらに、lsblkとblkidというツールを使ってコマンドラインの魔法をかけてみるよ。そして、「データの発掘」のためのプログラム制御のツールがいかにクールかも解説するよ!
ファイルシステムって何?
もしOS(オペレーティングシステム)があなたのコンピューターの「心臓」だとしたら、ファイルシステムはその「神経系」だね。ファイルシステムは記憶媒体のデータ(ハードディスク、SSD、USBドライブなど)の編成やアクセスを管理しているんだ。データの保存、読み取り、書き込みをどうやって行うかを決めてる。
こんなファイルシステムに出会うかもしれないよ:
- ext4 — 大半のLinuxディストリビューションで標準的なファイルシステム。
- NTFS — Windowsで使われてるファイルシステム。
- FAT32 — 外部ドライブやフラッシュドライブで人気。
- XFS, btrfs — Linuxでの進化系代替オプション。スナップショットみたいな機能をサポートしてる。
ディスクやフラッシュをLinuxに接続すると、ファイルシステムを「マウント」しなきゃいけない。そうしないとシステムが扱えないよね。これを管理するのに(それ以外のことも)コマンドを使うんだ。
2. lsblk コマンド: 接続デバイスの概要
lsblk コマンドの基本
Linuxにはデバイスとパーティションを操作するためのツールがたくさんあるけど、その中でも超便利なのがlsblkコマンドだね。この名前は「list block devices」、つまりブロックデバイスのリストを表示するという意味だよ。
構文は超シンプル:
lsblk
このコマンドを実行すると、システム内のすべてのブロックデバイス(HDD、SSD、USBドライブ、それぞれのパーティションなど)の一覧が表示されるよ。
出力例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 50G 0 part /
├─sda2 8:2 0 200G 0 part /home
└─sda3 8:3 0 250G 0 part
sdb 8:16 1 16G 0 disk
└─sdb1 8:17 1 16G 0 part /media/usb
- NAME: デバイス名だよ。例えば、
sda,sdb。アルファベット(a,b…)は、システムがデバイスを検出した順番を表してる。 - SIZE: デバイスのサイズ。
- TYPE: デバイスタイプ。例えば、
diskは物理ディスク、partはそのパーティション。 - MOUNTPOINT: ファイルシステムにデバイスがマウントされている場所。
便利なオプション
lsblkは超柔軟なコマンドで、追加のパラメータを使えばさらに多くの情報が得られるよ:
lsblk -f— 各デバイスのファイルシステムの種類やUUID(ユニーク識別子)を表示する。lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT— 表示する列を選択できる(例えば名前、サイズ、ファイルシステム、マウントポイント)。
例:
lsblk -f
結果:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 rootfs 1111-2222-3333-4444 /
├─sda2 ext4 home 5555-6666-7777-8888 /home
└─sda3 swap 9999-AAAA-BBBB-CCCC [SWAP]
sdb vfat USB_DISK AAAA-BBBB /media/usb
3. コマンド blkid: ユニークIDの魔法
時々、デバイスやそのファイルシステムについて詳しく知りたいことがあるよね。そんな時に役に立つのがblkidコマンド。このコマンドは、ファイルシステムとUUIDに基づいてデバイスを識別するためのものなんだ。
blkidコマンドの基本
パラメータなしで実行してみて:
blkid
出力例:
/dev/sda1: UUID="1111-2222-3333-4444" TYPE="ext4"
/dev/sda2: UUID="5555-6666-7777-8888" TYPE="ext4"
/dev/sda3: UUID="9999-AAAA-BBBB-CCCC" TYPE="swap"
/dev/sdb1: UUID="AAAA-BBBB" TYPE="vfat" LABEL="USB_DISK"
- UUID: パーティションのユニーク識別子(デバイスの名前が例えば
sdaからsdbに変わっても変わらない)。 - TYPE: ファイルシステムの種類。
- LABEL: パーティションのラベル。
UUIDの実用的な価値
UUIDはLinuxで特に重要なんだ。というのも、デバイスの名前が起動時に動的に変わる可能性があるから。例えば、今日/dev/sdaと呼ばれているものが、明日には/dev/sdbになるかもしれない。UUIDを使えば、デバイスの安定した識別を行ってマウントできるんだ。このことについては次の講義で詳しく話すよ。その講義では/etc/fstabファイルの操作についても触れる予定だよ。
4. 未マウントデバイスの操作
時々、ディスクやUSBメモリを接続しても、それがマウントされたものとして表示されないことがあります。これは、アクティブなファイルシステムがない場合に起こる可能性があります。lsblkとblkidを使って、何が起こっているかをすばやく確認しましょう。
たとえば、USBドライブを接続したけれども、lsblkの出力に次のように表示されたとします:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 16G 0 disk
これは、デバイスsdbがアクティブなパーティションを持っていないことを意味します。blkidの出力を確認して、その上にファイルシステムがあるかどうか確かめてください:
blkid /dev/sdb
もし応答がなければ、それはデバイスがまだフォーマットされていないことを証明します。この話題については次回の講義で説明します。
5. lsblk と blkid の比較
どちらのコマンドも便利なんだけど、それぞれ使いどころが違うよ:
lsblkはシステム全体の概要を把握するために使おう: どこに何があるか、どのパーティションがマウントされているかとか。blkidはファイルシステムの詳細情報 (種類、ラベル、UUID) を知りたいときに使うね。
比較表
| コマンド | 主な用途 | 出力 |
|---|---|---|
lsblk |
デバイス、パーティション、マウントポイントを表示する | NAME, SIZE, TYPE, MOUNTPOINT, FSTYPE とか。 |
blkid |
ファイルシステムの情報を取得 (UUID, LABEL, TYPE) | UUID, TYPE, LABEL |
6. 例: デバイスの検索からその構造の理解まで
課題
- 接続されたUSBデバイスを見つける。
- そのファイルシステムを確認する。
- デバイスをマウントできるように準備する。
手順
デバイスを接続して以下を実行する:
自分のデバイスを見つける。例えば、lsblksdb。ファイルシステムが存在するか確認する:
blkid /dev/sdbもしファイルシステムが存在しなければ、何も出力されない。この場合、デバイスをフォーマットする必要がある。
ファイルシステムが存在する場合、その種類とUUIDが表示される。それを使って次の作業(例えば、マウント)に進むことができる。
これでLinuxのファイルシステムに関する知識を得られたね。次の講義では、デバイスをフォーマットしてファイルシステムを作成し、作業に向けて準備する方法に取り組もう!「生の」ディスクを使えるツールに変身させるエキサイティングなプロセスに備えてね。
GO TO FULL VERSION