|
|
NetBSD と FreeBSD の dual boot に成功したので,調子こいて
お互いの file system を mount することにした.
今の状況は,
- NetBSD ( 0GB - 2GB)
- FreeBSD( 2GB - 12GB)
となっていて, FreeBSD の file system に home directory がある. これを
NetBSD 側からも見たいし, NetBSD:/usr (/usr/src/sys)も
FreeBSD 側から見たい. 以下,やったこと.
- FreeBSD側から NetBSD の file system を mount する.
まず,簡単な方から. NetBSD の file system がこんな
状態だった場合,
NetBSD での df の出力例:
Filesystem Size Used Avail Capacity Mounted on
/dev/wd0a 62M 34M 23M 59% /
/dev/wd0e 1.7G 240M 1.5G 14% /usr
NetBSD の file system は FreeBSD 側から見れば
/dev/ad0s1 にあり,
NetBSD:/usr は NetBSD 側から見れば
e パーティションにある.
そこで NetBSD:/usr を
FreeBSD から mount するには,以下のようにする.
FreeBSD# mkdir /netbsd
FreeBSD# mount -t ufs /dev/ad0s1e /netbsd
これでOK. 楽勝. あとは /etc/fstab に書くなり,
お好きにどーぞ.
- NetBSD側から FreeBSD の file system を mount する.
こいつはちょっとめんどくさい. しかも計算を間違えると
ぱー になる可能性があるので注意して行う.
下準備として, FreeBSD で fdisk -s と実行する.
FreeBSD# fdisk -s
/dev/ad0: 2772 cyl 135 hd 63 sec
Part Start Size Type Flags
1: 63 4193847 0xa9 0x00 <== NetBSD領域
2: 4193910 19381950 0xa5 0x80 <== FreeBSD領域
大事なのは,赤色の部分. FreeBSD のfile
system の先頭の位置を控えておく.
次に, NetBSD 側から mount したい file system を確認するために,
FreeBSD上で df なり, mount を実行する.
FreeBSD# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s2a 62M 34M 23M 59% /
/dev/ad0s2g 8.2G 6.1G 1.4G 82% /export/home
/dev/ad0s2f 496M 288M 168M 63% /usr
/dev/ad0s2e 15M 1.9M 12M 13% /var
今回 mount したいのは home directory がある
/export/home だから,
/dev/ad0s2g の HDD 上での位置を
計算する.
ってことで disklabel -r ad0 を実行.
FreeBSD# disklabel -r ad0
...(省略)
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 131072 0 4.2BSD 0 0 0 # (Cyl. 0 - 8*)
b: 524288 131072 swap # (Cyl. 8*- 40*)
c: 19381950 0 unused 0 0 # (Cyl. 0 - 1206*)
e: 32768 655360 4.2BSD 0 0 0 # (Cyl. 40*- 42*)
f: 1048576 688128 4.2BSD 0 0 0 # (Cyl. 42*- 108*)
g: 17645246 1736704 4.2BSD 0 0 0 # (Cyl. 108*- 1206*)
緑色の size
と 赤色の offset の値を控えておく.
これで準備万端. NetBSD を boot する.
NetBSD を boot したら, disklabel を書く. どきどき.
NetBSD# disklabel -e -r wd0
...(省略)
# size offset fstype [fsize bsize cpg]
a: 1091601 63 4.2BSD 1024 8192 16 # (Cyl. 0*- 1082) <== /
b: 1051344 1091664 swap # (Cyl. 1083 - 2125) <== swap
c: 4193847 63 unused 0 0 # (Cyl. 0*- 4160*) <== NetBSD 領域全体
d: 23579136 0 unused 0 0 # (Cyl. 0 - 23391) <== HDD 全体
e: 2050902 2143008 4.2BSD 1024 8192 16 # (Cyl. 2126 - 4160*) <== /usr
f: 17645246 5930614 4.2BSD 1024 8192 16 # (Cyl. 5883*- 23388*) <== ここを編集!!
f パーティションの行を自分で書く.
size は, 先ほど FreeBSD の disklabel で調べた size の値の
17645246 を書けば良い.
一方 offset は,
FreeBSD の fdisk で調べた値(4193910)と,
disklabel で調べた値(1736704)を足した値
(4193910 + 1736704 = 5930614)を書く.
足し算の結果を何度も確認して,よければ disklabel を終了する.
いよいよ mount で確認.
NetBSD# mkdir -p /export/home
NetBSD# mount /dev/wd0f /export/home
/export/home の中身が見れたり, file を作成することができるか確認する.
これでおしまい. disklabel の値の計算が間違えているとディスクが ぱー
になるのでご注意.
|