仕事じゃLinux、Solaris、Ciscoなど。 趣味じゃProToolsLEなど。 愛車はkawasaki 250TRナリよ。


スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


Oneiric な Ubuntu で SSD を起動ディスクに HDD を/home に
最近はノートパソコンがパワフルで軽いので、たいがいのことはそれで済んでしまう。
デスクトップのアドバンテージはもはや、大画面や二画面である(にできる)ことと、HDD の増設が可能であることぐらいか。
そのデスクトップパソコンでも、起動ディスクとしては、SSD の圧倒的スピードに慣れてしまったら、もはやHDD には戻れない。
ただ、SSD はまだまだ容量がHDD には及ばない。
行き着くのは、起動ディスクはSSD にして、/home や /export をHDD にする、という構成だろう。

しかし、既存のシステムにHDD を追加して、自動的にマウントされるようにする、というのはちょっとひと手間がいるので、まずは、「マシンにSSD と HDD が接続されている状態から、OS をインストールしたら、どういう設定になるのか」というのを見るのがよいだろう、と思い、いろいろ確認してみた。

インストールの際に、まずSSD に10GB ぐらいswap をとる。(メモリが8GB であるため。)
そんなにいらないかもしれないが、まあいい。
次に、SSD の残りの領域をext4 パーティションとしてマウントポイントを「 / 」(ルート)とする。
そしてHDD は全体をext4 パーティションの「 /home 」と指定して、インストールを進める。

インストール後「 /etc/fstab 」を確認すると、書式としては
<file system> <mount point> <type> <options> <dump> <pass>
という順になっている。

# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda5 during installation
UUID=ab123456-62f8-436d-a80a-02b4592ffa85 / ext4 errors=remount-ro 0 1
# /home was on /dev/sdb1 during installation
UUID=123ab456-ab59-4a83-9ffd-09a89021153e /home ext4 defaults 0 2
# swap was on /dev/sda1 during installation
UUID=12ab3456-bde8-4b06-9459-6dfff36f11a1 none swap sw 0 0

という具合。
このUUID を調べるコマンドは「 blkid 」で、実行するとこんな感じ。
user00@Oneiric:~$ blkid
/dev/sdb1: UUID="123ab456-ab59-4a83-9ffd-09a89021153e" TYPE="ext4"
/dev/sda1: UUID="12ab3456-bde8-4b06-9459-6dfff36f11a1" TYPE="swap"
/dev/sda5: UUID="ab123456-62f8-436d-a80a-02b4592ffa85" TYPE="ext4"

実行結果と、/etc/fstab で指定されている<file system> 、それから<type>が対応していることが分かる。
しかし<options>と<dump>と<pass>の意味がよくわからない。
そういう場合はman を読む。

user00@Oneiric:~$ man fstab

FSTAB(5) Linux Programmer's Manual FSTAB(5)

NAME
fstab - static information about the filesystems

SYNOPSIS
/etc/fstab

DESCRIPTION
The file fstab contains descriptive information about the various file systems. fstab is only read
by programs, and not written; it is the duty of the system administrator to properly create and
maintain this file. Each filesystem is described on a separate line; fields on each line are sepa‐
rated by tabs or spaces. Lines starting with '#' are comments, blank lines are ignored. The order
of records in fstab is important because fsck(8), mount(8), and umount(8) sequentially iterate
through fstab doing their thing, though at boot time mountall(8) may process the file out-of-order
when it believes it is safe to do so.

The first field (fs_spec).
This field describes the block special device or remote filesystem to be mounted.

For ordinary mounts it will hold (a link to) a block special device node (as created by
mknod(8)) for the device to be mounted, like `/dev/cdrom' or `/dev/sdb7'. For NFS mounts
one will have <host>:<dir>, e.g., `knuth.aeb.nl:/'. For procfs, use `proc'.
Manual page fstab(5) line 1 (press h for help or q to quit)


残念ながらあんまり読もうという気になれない。
日本語化しよう。
user00@Oneiric:~$ sudo apt-get install manpages-ja

これで日本語化される。
気を取り直して
user00@Oneiric:~$ man fstab

FSTAB(5) Linux Programmer's Manual FSTAB(5)

名前
fstab - ファイルシステムの静的な情報

書式
#include <fstab.h>

説明
このファイル fstab には様々なファイルシステムに関する情報が記述されている。 fstab ファイルはプログ
ラムによって読みこまれるだけで書き込まれることはない。 このファイルを適切に作り、保守するのはシステ
ム管理者の責任である。 それぞれのファイルシステムは一行単位で記述され、 各行のフィールドは TAB 文字
もしくは空白 (spaces) で区切られる。 '#' で始まる行はコメントである。 fsck(8), mount(8), umount(8)
などのプログラムは、 fstab ファイルを先頭から順に読み込んで処理するため、 fstab に記述されるレコー
ド (ファイルシステム) の順序は重要である。

最初のフィールド (fs_spec) は、マウントしたいブロックスペシャルデバイス もしくはリモートファイルシ
ステムを記述する。

通常のマウントでは、これはマウントされるブロックスペシャルデバイスノード (またはそれへのリンク) で
ある。これは mknod(8) によって作成される。たとえば `/dev/cdrom' や `/dev/sdb7' といったものになる。
NFS マウントの場合は <host>:<dir> という書式になる。 たとえば `knuth.aeb.nl:/' などである。 procfs
Manual page fstab(5) line 1 (press h for help or q to quit)


これなら読めそうだ。
●1.<file system>
/dev/sda1 のようなディスクデバイス名で指定してもよいが、増設したりするとずれる場合もあるので、UUID やボリュームラベルなどでも指定できる、とあり、インストーラーで自動設定された設定ファイルではUUID で指定されている。
指定の仕方としては、
LABEL=<LABEL>
UUID=<UUID>
のように指定するらしい。

●2. <mount point>
マウントポイントを、「 / 」や「 /home 」のように指定する。
swap の場合は、「 none 」と指定する。

●3.<type>
ファイルシステムのタイプを書くわけで、いろいろ指定できるようだけども、もちろん実際のディスクのファイルシステムのタイプどおりに指定しなければ正しく動作しないだろう。
「 proc 」と「 ext4 」と「 swap 」しか使わないとは思うが、他には「 autofs 」、「 ext3 」、「 iso9660 」、「 ntfs 」、「 smbfs 」などが指定できるようだ。

●4.<options>
これは、ファイルシステムごとのマウントオプションを指定する。
複数指定するときはカンマで区切って列記する。
最低限、マウントのタイプを書く必要がある。
加えて、ファイルシステムの種類に応じて適時指定する。
mount(8)をみよ、とのこと。
SSD 上の「 / 」に対しては「 errors=remount-ro 」となっている。
一方、HDD 上の「 /home 」に対しては、「 defaults 」となっていた。
また、SSD 上の「 swap 」は 「 sw 」となっているので、これはそういうもの(個別固定的)なんだろう。

●5.<dump>
dump コマンドでダンプする必要性の有無を指定する、ということで、ゼロかイチか、ゼロであればダンプされない。
標準ではすべてゼロになっている。
イチにすることはあまりないかもしれない。

●6.<pass>
fsck プログラムが参照し、ブート時にファイルシステムのチェックを行う際の実行順序を指定している。
ルートファイルシステム「 / 」は必ず「 1 」を指定する、とのことで、「 /home 」が「 2 」となっている。
「 swap 」が「 0 」となっているのは、チェックする必要がない、という意味である。


そんな感じで、「 /etc/fstab 」の書式をなんとなく理解できたので、「すでに稼働しているシステム」に後付でHDD を追加して「 /home 」ディレクトリとして自動マウントさせる、ということもできそうである。

こちらについても試してまとめてみたい。



スポンサーサイト


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。