2007-03-27

ソリッドステート・ドメイン0【その2】

前回の続き


PCでマイクロSDを読み書きするためのインターフェイスといえば USBしかないので、3.5インチベイに内蔵するタイプの USBカードリーダー/ライターを取り付け。2000円弱で売っているオウルテックのFA405MX3というもの。なんとマイクロSDを直接挿せるスロットが・・・(SD/miniSDとの同時使用はできないとのこと)


早速マイクロSDカードを差し込み、dmesgで認識されたことを確認。udevの取り計らいにより、このメモリカードへは
/dev/disk/by-id/usb-Generic-_SD.MMC_200211111(略)
という名前でアクセス出来るようだ。/dev/sdXだといつもコロコロ変わって不便だから固定の名前がつくのっていいよね。でも長いよ。

普通に fdiskと mkfs.xfs して適当な場所にマウントし、ルートパーティションの内容を丸ごとコピー。さすがに時間がかかる(SDメモリにスループットは期待しないこと。とてもがっかりするから)。
コピーには cp -avxコマンドを使ったが、ルートファイルシステムを -xオプションつきでコピーすると /dev以下がコピーされないので注意(udevもdevfsも使っていない人以外...)。

さて、カーネルのroot=や /etc/fstabにこんな長い名前を書くのはゴメンなので、パーティションにラベルをつけてやることにする。
ルートファイルシステムなので root とつけてやろう(安易)
ラベルを付けるコマンドはファイルシステムによってそれぞれだが、今回はXFSを選んだので下記のように。

xfs_admin -L root /dev/disk/by-id/usb-Generic-_SD.MMC_200211111(略)-part1

こうしておくとfstabに
/dev/disk/by-id/usb-Generic-_SD.MMC_200211111(略)-part1
なんて書かなくても、
LABEL=root
と書けば勝手にそのラベルがついたパーティションを探してマウントしてくれる。

/etc/fstabと /boot/grub/grub.confを書き換える。
カーネルのオプション(実際は initrdに渡される)に scandelay 指定を付ける必要があった(Gentoo以外では違うやり方かも)。そうしないとメモリカードを認識する前にルートファイルシステムをマウントしようとして失敗する。

書き換えができたらリブートし、めでたく小指の先ほどのメモリで OSが起動するのだった。

なぜか続く

ラベル:

0 件のコメント:

コメントを投稿

<< ホーム