パーティション/ファイルシステム管理コマンド
使う機会が少ないコマンド類。
fdisc - パーティションの作成、情報表示、削除、変更コマンド。
USB Linux 作るときにつかったけど忘れた。理解してやらないと非常に危険。
以下、/dev/sda にパーティションを作成する。
# fdisk /dev/sda コマンド (m でヘルプ): p <-入力 Disk /dev/sda: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System コマンド (m でヘルプ): n <-入力 コマンドアクション e 拡張 p 基本領域 (1-4) p <-入力 領域番号 (1-4): 3 <-入力 最初 シリンダ (1-130, default 1): <-[ENTER] Using default value 1 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-130, default 130): +500M <-入力 コマンド (m でヘルプ): w <-入力 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。 # fdisk -l Disk /dev/hda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/hda1 * 1 978 7855753+ 83 Linux /dev/hda2 979 1043 522112+ 82 Linux swap / Solaris Disk /dev/sda: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sda3 1 62 497983+ 83 Linux
パーティション上にファイルシステムを作成
パーティションを切っただけではセクタを指定してデータを読み出すことになるが、ファイルシステムを作ることでディレクトリ名・ファイル名でデータを扱うことができる。
Linuxファイルシステムは 実態データ と ファイルの属性や管理情報(iノード = Index Node) を別々に保存しており、ファイルやディレクトリを作成するたびに iノードが使われていく。
mkfs - ファイルシステム作成のフロントエンド
パラメータ: -t に作成したいファイルシステムを与える。
デフォルトは ext2。以下は ext3ファイルシステムを /dev/sda3 に作成する。
# mkfs -t ext3 /dev/sda3 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 124928 inodes, 497980 blocks 24899 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=67633152 61 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 29 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
mkswap - スワップ領域の作成
通常スワップ領域は独立したパーティション上に行う。
システムには最低1つのスワップ領域が必要。
# mkswap /dev/sda4 Setting up swapspace version 1, size = 106921 kB
mount / umount - マウントとアンマウント
苦労して作ったファイルシステムをマウントしないなんて武器も防具も装備せずにゾーマを倒すくらい無駄。
デバイス名とマウントポイントを引数で渡すことでファイルの入出力が可能な状態となる。
# mount -t ext3 /dev/sda3 /data # df -m Filesystem 1M-ブロック 使用 使用可 使用% マウント位置 /dev/hda1 7432 1197 5852 17% / tmpfs 93 0 93 0% /dev/shm /dev/sda3 471 11 437 3% /data
umount を unmount とタイプミスした場合は極刑とする。
マウント頻度の高いファイルシステムは /etc/fstab に書いておく。
/etc/fstab 書式
書式) | デバイスファイル名 | マウントポイント | ファイルシステムの種類 | マウントオプション | dumpフラグ | ブート時fsck順 |
---|---|---|---|---|---|---|
例) | /dev/sda3 | /data | ext3 | exec,nouser,ro,suid | 1 | 2 |
ファイルシステムの種類
種類 | 説明 |
---|---|
ext2 | Linux標準のファイルシステム |
ext3 | ext2 にジャーナリング機能を+ |
reiserfs | 高速なジャーナリングファイルシステム |
xfs | SGIが開発した 〃 |
jfs | IBM 〃 |
iso9660 | CD-ROM |
msdos | MS-DOS |
vfat | Windows 9x |
nfs | Network File System |
ほか | wiki:ファイルシステム |
主なマウントオプション
オプション | 説明 |
---|---|
defaults | デフォルト(async,auto,dev,exec,nouser,rw,suid) |
async | 非同期入出力 |
auto | mount -a でマウントする |
noauto | mount -a でマウントしない |
exec | バイナリ実行を許可 |
noexec | バイナリ実行を許可しない |
rw | 読み書きを許可 |
ro | 読み出し専用 |
unhide | 長さ1.56メートルではない。隠しファイルも表示 |
suid | SUID、SGIDを可能にする |
user | 一般ユーザによるマウントを許可 |
users | マウントしたユーザ以外のアンマウントを許可 |
nouser | 一般ユーザのマウントを許可しない |
usrquota | ユーザクォータを有効にする |
grpquota | グループクォータを有効にする |
df / du - ディスクの利用状況確認
ファイルシステムの空き容量 は df コマンドを利用。iノードの使用状況も確認できる。
# df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/hda1 7.3G 1.2G 5.8G 17% / tmpfs 93M 0 93M 0% /dev/shm /dev/sda3 471M 11M 437M 3% /data # df -h -i Filesystem Iノード I使用 I残り I使用% マウント位置 /dev/hda1 1.9M 38K 1.9M 2% / tmpfs 24K 1 24K 1% /dev/shm /dev/sda3 122K 11 122K 1% /data
ファイルやディレクトリを占める容量を確認する場合は du コマンドを使う。
# du -a -b ~/ 35 /root/.lesshst 24 /root/.bash_logout 176 /root/.bashrc 2134 /root/.bash_history 129 /root/.tcshrc 191 /root/.bash_profile 100 /root/.cshrc 6885 /root/
fsck - ファイルシステムのチェック
オプション: -t にチェックを行うファイルシステム名を与えるのでコマンドとしてはフロントエンドぽい。デフォルトは ext2。
実行するときは対象とするファイルシステムをアンマウントするか、読み取り専用モードでマウントしておくべき。
# fsck -t ext3 -a /dev/sda3 fsck 1.39 (29-May-2006) /dev/sda3: clean, 11/124928 files, 26310/497980 blocks
ディスククォータの管理
ディスク容量の制限を ユーザ/グループごとに管理できる。
ソフトリミットを超えるとユーザへ警告が発せられ、ソフトリミットを越えたまま一定期間を経過すると書き込めなくなる。
ハードリミットを越えた場合はそれ以上書き込みができない。
適用手順
- /etc/fstab にマウントオプションに「usrquota」を指定して記述。
- マウントする。
- クォータ制限をかけるファイルシステムの最上位に「aquota.user」ファイルを配置し、アクセス権限を設定する。
- quotacheck コマンドでデータベースを初期化。
- quotaon コマンドで有効化
- edquota コマンドでユーザごとのクォータを設定
- repquota コマンドで内容確認
- quota コマンドでディスクごと、ユーザごとのクォータ状況を表示します。
コレはめんどい…