0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LPIC201対策 - ファイルシステムとデバイス

Posted at

この記事について

Linux Level 2 取得を目標としている筆者です。
先日 Level 1 を取得しましたが、短期詰め込みの暗記がしんどかったので、Level2はじっくり時間をかけていいから、ちゃんと理解してやっていきたい。

一方で、暗記も暗記で重要。

ということで、理解を深めるためにと、暗記しやすいように、両方の目的で、覚えたことを Qiita に整理してまとめながら受験対策することにしました。

この分野で覚えること

ファイルシステムの種類

システム領域に使用されるファイルシステム

名称 説明
ext2 Linux標準
ext3 ↑+ジャーナリング機能
ext4 ↑+大容量(1EiBまでをサポート)
btrfs サブボリュームを構成しスナップショットなどの機能あり
ZFSを参考に作られた
xfs ジャーナリング機能あり

ジャーナリングとは、ディスクに実データを書き込む前に、メタデータを専用領域に書き込むこと。これにより、不正にシステムが終了した際にもファイルシステム内で不整合が起きることを防げる。

その他のファイルシステム

名称 説明
iso9660 CD-ROM用
FAT/VFAT フラッシュメモリ
Windowsの古いファイルシステム
UEFIファームウェアのシステムパーティション
ISOILNUXのイメージ 等で使用
ntfs 最近のWindowsで使われる
nfs ネットワークファイルシステム
tmpfs メモリ上に配置(RAMディスク)
swap 物理メモリのスワップ先
ZFS Solarisで使用

smartctl コマンドのオプション

意味
-t --test 自己診断テストの実行
-a --all すべてのSMART情報を表示
-i --info SMARTの対応状況やデバイスの情報を表示
-c --capabilities テストの対応状況を表示
-l --log テストログを表示
-H --health デバイスの健康状態を表示
--scan 認識されているデバイスを表示

mkfs, mkfs.extx コマンドの関係

mkfs [-t ファイルシステムの種類] デバイス を実行すると、内部的に mkfs.指定したファイルシステムの種類 デバイス が実行される。

たとえば、

mkfs -t ext3 /dev/sda1 を実行すると、内部的に mkfs.ext3 /dev/sda1 が実行される。

mke2fs コマンドのオプション

オプション 意味
-t ファイルシステムの種類を指定
-j ext3として作成する
-b ブロックサイズを指定(バイト単位)
-m ルート用予備領域の割合を指定
-L ボリュームラベル名を指定
-n 確認のみ(実際には実行しない)

tune2fs コマンドのオプション

2という数字がついているが、このコマンドで ext2/ext3/ext4 の操作・設定を行うことができる。

オプション 意味
-c 自動fsckが行われるまでのマウント回数を指定
-i 自動fsckが行われるまでの時間を指定
-j ext2をext3に変換
-l スーパーブロックの内容を出力
(dumpe2fsと同様)
-m ルート用予備領域の割合を指定
-L 次に指定した名前でラベルをつける

スーパーブロックの内容は後述

e2fsck コマンドのオプション

2という数字がついているが、このコマンドで ext2/ext3/ext4 の復元・チェックを行うことができる。
(xfsなどには対応していない。fsckコマンドであれば、 -t オプションで xfs などのファイルシステムにも対応)

オプション 意味
-b スーパーブロックを指定して、それを使って復元
-c 不良ブロックのチェックを行う
-p 自動的に不良ブロックを修復する

fsckコマンドをたたくと、引数がこのコマンドに渡される。

たとえば fsck -t ext3 をたたくと、fsck.ext3(e2fsckの別名)が呼ばれる。

オートマウントの設定方法

/etc/auto.master

  • メインの設定ファイル
  • この中で、マップファイルという設定ファイルを指定する
  • 編集したら、/etc/init.d/autofs reloadを実行することで設定を反映できる
# こちらの表記は直接マップ
/- /etc/auto.direct

#こちらの表記は間接マップ - /abc 部分がマウントポイントの起点
/abc /etc/auto.mapfile --timeout 60

マップファイル

/etc/auto.master の中の2列目の要素。

上記の間接マップの例でいうと、/abc にどのようにマウントするかの設定情報が /etc/auto.mapfile に書かれている。

書式は マウント名 [マウントオプション] マウントするリソースやデバイス(ロケーションという)

直接マップの場合のマップファイル例
/mntname NFS1:/share
間接マップの場合のマップファイル例
/cdrom -fstype=iso9660 :/dev/cdrom

ファイルシステムにおけるブロック

ext2, ext3 は、ブロック単位でデータを管理している。
ブロックには、以下の種類がある。

ブロックの種類 意味
データブロック 実際のファイル内容を保持
iノードブロック 個々のファイルのメタ情報を保持。
ファイル名、ファイルサイズ、アクセス権、所有者など
スーパーブロック ファイルシステム全体に関わる情報を保持。
マウント回数、ブロックサイズなど)
冗長化されている。

ファイルシステムの修復を行う際の注意事項

対象ファイルシステムに書き込みがされないようにしておくこと。
具体的には、

  • あらかじめアンマウントしておく
  • マウント時に ro マウントオプションを指定しておく

上記がいずれもできない場合は、 /etc/fstab の fsck フラグ(最後のbit)が1になっていることを確認の上、 shutdown -r -F now (強制再起動)を実行して起動時にチェックする

暗号化関係

暗号化の手順

  1. ブロックデバイスへの暗号化マッピングを作成
  2. 暗号化マッピングにファイルシステムを作成
  3. 暗号化ファイルシステムをマウント

ブロックデバイスとは、要するにブロックストレージ的なものの総称と理解(違う?)
https://e-words.jp/w/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9.html

暗号化マッピングの作成

cryptsetup コマンドを使用し、/dev/mapper 配下に指定した名前で暗号化マッピングを作成

オプション 意味
create マッピング名 デバイス名 指定したデバイスに、指定したマッピング名で暗号化マッピングを作成
remove マッピング名 指定したマッピングを削除
status マッピング名 指定した暗号化マッピングの状態を表示

上記を実施後、mkfs コマンドでファイルシステムを作成、 mount コマンドでマウント

luks関係

LUKS(Linux Unified Key Setup) は Linux において標準的に使用される暗号化ファイルシステムの仕様。

LUKSでは、dm-cryptという、デバイスマッパー(物理デバイスと論理デバイスをマッピングする機能)の暗号機能を使ってデバイス全体の暗号化を実施。
KeySlotといって、暗号化管理のための鍵をパーティションごとに8つまで保持可能。これにより、万が一の場合の予備鍵や、(少数なら)ユーザーの使い分けにも対応できる。

オプション 意味
luksFormat デバイス名 指定したデバイスをLUKS(暗号化)されたパーティションとして初期化
luksOpen デバイス名 パーティション名 指定されたデバイス・LUKSパーティションを開く
luksClose パーティション名 指定されたLUKSパーティションを閉じる
luksDump デバイス名 指定したデバイスの暗号化の状態を表示

mkisofsコマンドのオプション

コマンド 意味
mkisofs CD-Rに焼き込み可能なファイルシステムイメージを作成
オプション 意味
-o イメージファイルの出力先を指定
-J Jolietフォーマットで作成(Windows系の拡張)
-R RockRidgeフォーマットで作成(UNIX系の拡張)
-udf UDFフォーマットで作成(DVDで使用)

その他のコマンド

コマンド 意味
xfsrestore xfsファイルシステムをバックアップから復元
xfsdump XFSファイルシステムのバックアップを行う
(コマンド名はdumpだが、単なる表示ではなくバックアップにも使える)
debugfs ext系のファイルシステムを対象に、専用のシェルを起動して対話的に調査・編集を行うコマンド
e2label ext系のファイルシステムにラベルを設定する専用コマンド(2,3,4どれでも使える)

ファイル・ディレクトリ関連

ファイル 中身
/proc/filesystem 現在のシステムで利用可能なファイルシステムの一覧
/dev/disk/by-uuid デバイスのUUIDを確認できる。(blkidコマンドを打鍵するのと同様だが、表示形式は異なる)
/lost+found どこからも参照されていないファイルの保管場所

その他の暗記事項

暗記事項 説明
VFS Virtual File System の略で、Linux で異なるファイルシステムの違いを吸収する為に用いられる仕組み。これのおかげで、ユーザープログラムはファイルシステムの違いを意識することなく処理を記述できる。内部的にはシステムコール(OSの機能を呼び出す仕組み)を使ってVSFを呼び出す

以上!

勉強が進んだら適宜追記・修正などしていきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?