WindowsからLinuxパーティションに書き込む
デュアルブートにしてる人以外には、まったく関係ない話。。
デュアルブートのブートローダにGrub使ってると、Linuxで立ち上げてないとgrub.conf(menu.lst)を変更できなくて、リモートから接続してて Linux -> Windowsにするのはできるけど、Windows -> Linuxができなくて、イケてないのでいじってみた。
(WindowsからLinuxに書き込むのは、激しくキケンなので注意!!)
今まで Ext2IFS (http://www.fs-driver.org/)使ってたけど、Linuxパーティションの参照はできてたんだけど書き込みはダメっぽいので、今回は Ext2Fsd(http://ext2fsd.sourceforge.net/)でやってみた。
とりあえず、DLしてインストール。書き込みしたいので、インストーラで途中に出てくる
Enable write support for Ext2 partitions Enable force writing support for Ext3 partitions
の両方をチェック。
で、インストールが終わったら、Linuxのパーティションをマウント。ここでけっこうはまった。
自分のPCの場合、 WindowsのDiskpartでは
Partition ### Type Size Offset ------------- -------------- --------- ---------- Partition 1 OEM 31MB 32KB : DELLの診断ツールとかの領域 Partition 2 プライマリ 29GB 31MB : Cドライブ (Windows) Partition 3 拡張 63GB 29GB : 拡張パーティション(Windows) Partition 4 論理 63GB 29GB : Dドライブ (Windows) Partition 5 不明 20GB 92GB : Linux
になってるけど、
mount 0 5 L:
とかやるとエラーになる罠。
どうやら、Diskpartの番号はあてにならないらしく
mount 0 3 L:
とかやるとちゃんとマウントできた。
ちなみに、
mount 0 4 L:
とかやると, DドライブがLドライブにもマウントされるw 特に中身が壊れた様子もないので、まちがっても問題なさそう。
たぶん、拡張パーティション使うと番号が変になるっぽいから、プライマリパーティション使うべきってことか。
これだけだと、ReadOnlyなマウントなので書き込みできるようにする。ついでにいろいろ設定もしておく。(レジストリエディタいじるので、要注意)
- \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ext2Fsd\Start
の値を 3 => 1 にするとWindows起動時に自動でドライバがよまれるっぽい。
- \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ext2Fsd\Parameters\Ext3ForceWriting
- \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ext2Fsd\Parameters\WritingSupport
の値をそれぞれ 1 にすると書き込めるっぽい。
- \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Dos Devices
で"新規"->"文字列"を選択して、キーにドライブ名(ex. L:)、値にパーティションのパス(ex. \Device\Harddisk0\Partition3)とやるとWidnows起動時に自動で指定されたドライブ名でマウントされるっぽい。
で、再起動してみてLinuxパーティションのgrub.confのデフォルトOS変更したら、ちゃんとLinuxで起動した。
あんまりデカいファイル削除したりすると、ext3ジャーナルとの関係が気になるけど。