不完全な形ですが 直書き 要するに ”dd”を使う”rdev”を 使う 何ぞして boot root disk を 1枚で 作成する 手立てを 試みました。
今回は 2枚に 分ける方法を 試みます。基本的には
http://linuxjf.sourceforge.jp/JFdocs/Bootdisk-HOWTO.html
そのままという事なんですが まあ やって なんぼ の世界です。 フロッピディ スク 2枚が 必要です。
ファイルの 存在と位置関係
$ pwd /home/ksim/proj $ ls bootldr/ debug/ images/ project/ sysapps/ tools/ build-tools/ doc/ kernel/ rootfs/ tmp/ vmlinuz $ ls rootfs/ bin/ dev/ etc/ lib/ linuxrc@ proc/ sbin/ tmp/ usr/ var/ j$ ls -a rootfs/etc/ ./ ../
御覧の 通り 不完全な形に なっています。 /etc は 空です。
$ su -m Password: # mkdir tmp/fsroot/ /* mount する ディレクトリ を作成します */ /* もう存在しているかもしれませんが 手順という事で */ # dd if=/dev/zero of=images/rootfiles bs=1k count=4096 # mke2fs -F -v -m0 images/rootfiles # mount -o loop images/rootfiles tmp/fsroot/ # rmdir tmp/fsroot/lost+found/ /* lost+found/ ディレクトリを削除 */ # cp -av rootfs/* tmp/fsroot/ /* 追記 これを してなかった */ # umount tmp/fsroot/ # gzip -9 < images/rootfiles > images/rootfs.gz # ls images/ | grep root rootfiles rootfs.gz
補足 # cp -av rootfs/* tmp/fsroot/ を 忘れ ていたのです。 これを しないと
Kernel panic: No init found. Try passing init= option kernel.
一応 フロッピディスクをクリヤします。しなくても いいようですが
# dd if=/dev/zero of=/dev/fd0 bs=1k count=1440
2枚とも 行います。
2枚の フロッピディスク に 区別を つけておいて下さい ”boot”、 ” root”の 区別が 付くように しておいて下さい。カーネル の書き込み を 行い ます。
# dd if=vmlinuz of=/dev/fd0 bs=1k 読み込んだブロック数は 905+1 書き込んだブロック数は 905+1
”905+1” という事ですので ”906”ブロック が 使われている という事で す。
# ls -l vmlinuz -rw-r--r-- 1 ksim users 926918 7月 29日 23:52 vmlinuz $ bc -lq 926918/1024 905.19335937500000000000
ルートデバイスをフロッピーに設定し,ルートを読み書き可能でロードできるように設定します
# rdev /dev/fd0 /dev/fd0 # rdev -R /dev/fd0 0
今回は2枚の フォロッピディスクを 使って 動かすので ”17290” 前回と 異る 値になります。
# rdev -r /dev/fd0 49152
ルートファイルシステムを2番目のディスクに置く場合、最初のフロッピーを抜いて2番目のフロッピーを入れ,これにルートファイルシステムを転送します。
# dd if=images/rootfs.gz of=/dev/fd0 bs=1k 読み込んだブロック数は 4+1 書き込んだブロック数は 4+1 # ls -l images/rootfs.gz -rw-r--r-- 1 root root 4401 7月 28日 21:30 images/rootfs.gz
これで動作するか見てみましょう。
敢え無く 失敗です。
にゃんたろう 拝!
2011年 7月31日 (日) 21:03:38 JST 作成