友人
が自分のノートパソコン(Sotec Winbook Bird(?))のハードディスクが
故障し,新たに2.1G ハードディスクを購入したのですが
なぜかうまく動作しないとのことで,
僕がLibrettoで使っていた 1.6G と交換することになりました.
友人を仮にDと呼ぶことにしましょう.
Dとしては 2.1G を購入したのに1.6G しか手に入らないのは
納得いかないことではあるのですが,かといって良い解決策が
見つからないとのことで,スムーズにことが済むのなら
それでいいということなのです.
僕としては以前ハードディスクを購入する時に 12.7mm2.1G と
9.5mm1.6G との比較に迷った末に,当時は裏を切るのが
嫌だったために薄いのを選んだといういきさつがあるのですが,
容量も大きく(1.6G→2.1G)なるし,ありがたく
交換することにしました.でもあのときの迷いはなんだったん
だ…?
ちなみに価格的には両者とも秋葉原で25,000-30,000程度なので
まぁいいのではないか,ということです.
Dにとって薄いことはうれしくはないので,不利な交換で
あることは確かなので申し訳ない気もするのですが.
一応言っておくと,2Gの8.5mmサイズがtoshibaから
出るとかいう話があったような気がします.違ったかな?勘違いかも.
あと,IBMの9.5mm厚3.2G(DCAA-34330)もあるし.
デジカメでもあれば面白かったのですが,未だに両者とも
持っていないため,文章でかんたんな記録を残そうと
思いました.
Librettoを分解するのは初めてだったので緊張しました.
と,いってもキーボードをはずす必要は無く,
裏面のねじを6つはずし,裏蓋を取るだけです.
だけ,なのですが,ツメの引っかかりが硬く,かなり手に汗を
にぎりました.
蓋を取ったら,2.1G HDDを接続.当然蓋がしまらないので,
なんとなく蓋をかぶせ,半ば開いたままの状態で起動しました.
危ないので真似はしないで下さいねっ.無事,認識.
なんだ,大丈夫じゃないか.
それにしてもなぜDのマシンではこのハードディスクを
認識しないのだろう…?
Dのマシンはハードディスクを専用のソケットのような箱に入れるタイプ
なので,多少薄い9.5mmのハードディスクを入れてもソケットの中で
固定され,動かないことを確認.無事,認識しました.
両者ともマシンはハードディスクを認識しましたので
ここで交換がほぼ決定したわけです.
材料の確認をします.
Libretto20(改)
IBM 1.6G 9.5mm DDLA-21620 (元Libの)
Sotec Winbook Bird(P-133)
Toshiba 2.1G 12.7mm(or 12.5mm?) MK2104MAV (Libに埋め込む)
僕の方はLibrettoに12.7mmのハードディスクを底面を切り取って,
半ばはみだすような形で無理矢理埋め込む作業にかかりました.
これは通称「裏切り」と呼ばれ,ハードディスク容量に不満の
多いLibrettoではかなり有名な改造です.
僕はLibretto入手時から,予備の裏蓋(中古購入時に中身の無い
ただの箱状態のLibrettoをおまけにくれたの♪)を持っているので
万一失敗しても1回は大丈夫,という安心感はありました.
もちろん,
チチブ電気
に行けば裏蓋くらい売っているのでしょうが…
ところが,金ノコもアクリルカッター(確かこれらがお薦めと
どこかに書いてあった)もありません.
無謀にも我々は普通のカッターで切りはじめました.
多少丈夫そうな,大きめのカッターです.
何度も何度も,決めたラインをカッターでなぞるのです.
I「えー,これ切れるかなぁ」
D「5000回交代ね」
...と馬鹿なことを言いながら何度もカッターでなぞっていると,
だんだんといい感じになってきました.
今考えると,彫刻刀があればそれも併用するといいかもしれない.
でも彫刻刀がダメになるかな.やっぱりアクリルカッターでしょうか.
しばらくカッターでなぞること200〜300回(?),ようやく1つの辺が
切れました.一番大きい辺が切れたので,残るは意外とと簡単です.
3辺を切り取り,さっそく本体やハードディスクと位置を
合わせてみました.
…が,失敗.切り取った部分が小さすぎる〜(T_T)
残りはがんばってやすりで削りました.
大体,切るのに1時間,削るのに1時間程度かかったでしょうか.
たぶんいい道具があればもっと楽にできるのだろうなぁ…
あと,最初に切る位置は重要.一度広がりすぎると隙間ができて
悲しいし,かといって小さすぎると削るのが大変.でした.
さて,次はハードディスクの中身の移動です.
僕はWindows95とLinuxを使っているのですが,
Windows95はまるごとバックアップをとる
楽々再インストール
は行いませんでした.そのうち挑戦したいとも思いますが.
今回は普通に再インストールをして,
普段から取っているバックアップを使って復旧すればよい,と
簡単に考えたのです.今考えるとちょっと甘かったのですが.
一方,Linux についてはシステムを入れ直すのは面倒なので,
/ 以下の tree をまるごとコピーしてしまおうと思いました.
まず,古いディスクの情報を固めてどこかに置いておきます.
ネットワーク経由で固めながら流せればよかったのですが
事情により自分のハードディスクの中で固めてから
他の場所に移すことにしました.linux領域は500M以上で
ディスクが一杯なので,それを固めたものをすでに中身を消した
dos領域に作ることにしました.
cd /dos (dos領域をマウントしている)
tar zcfvpB linuxall.tgz /
小考の後,tar が固める順番が /lost+found から始まる
(i-node 番号の若い順でしょうか? 知りません)
ことに気づき,アドホックな解決策を考えました.
umount /dos
mount -t msdos /dev/hda1 /lost+found
さっき他の友人にこの話をしたところ,
簡単な解決策を示してくれました.
cd /
ls > hoge
vi hoge (必要なディレクトリ以外(/dosなど)を削除)
tar zcfvpB /dos/linuxall.tgz `cat hoge`
(バッククォートです,「'」でなく「`」)
なるほど,気づかなかった…
とにかく無事にlinuxを丸ごとバックアップを取り,
それを別のディスクに移すことができました.
500M 以上が 250M 程度になったけど,もう少し小さければ
MOにぴったり入ったのになぁ.
前述の通り,win95は普通に再インストールをすることにしました.
が,いざ,やるとめんどくさい…フロッピーディスク40枚程度を
使って普通にやりました.Libretto用純正FDD は別売の上に
異常に遅いのです.
新たなディスクを適当にパーティションに切り分けます.
僕はLinuxの領域を usr とか home とかで分けるのは
なんとなく嫌(特に容量が不足しそうな時)なので,
linux 用パーティションは1つ,linux swap 用が1つ,です.
ここでLibretto独特の注意事項を二つほど.
ポイント1 ハイバネ領域
Libretto では一時的に電源を切るためのハイバネーション
(メモリ内容をハードディスクに書き出すタイプのサスペンド,通称ハイバネ)
を行うためにハイバネ領域をディスクに確保せねばなりません.
最初にwin95 for Libretto の fdisk で最大使用可能容量を
見ておき,linuxのfdiskとの比較をすれば
ハイバネ領域を知ることができるはずです.
(linuxのfdiskではわからない)
ポイント2 Linux Installation on Libretto
また,Libretto では linux のブートディスクとルートディスク
が通常の方法では作成できないことにも注意.
インストールにはいくつかの方法があるようですが,
僕はwin95起動ディスクを作成し,そこにmini linux と
loadlin を入れることで起動ディスクもどきを作る方法を使っています.
webで「libretto linux」で検索するといろいろでてきます.
例えば,
ここ
とか.
さて,いざ linux の復帰です.フロッピーから(あるいはDOSから)
ブートしてパーティションを用意,swapをアクティベートさせたら,
おもむろに dos領域をマウントし,アーカイブを展開します.
目的のlinux領域は/dev/hda3で,mntにマウントされています.`
cd /
mkdir dos
mount -t msdos /dev/hda1 dos
cd mnt
tar zxfvpB /dos/linuxall.tgz
これで / 以下の全てが展開されました.
さて,これで動くかな?
…おっとまてよ,ブートできるように設定せねば.
というわけで,lilo の設定をしよう.
cd /mnt/sbin
chev us
cd /
./lilo
僕はうまくいかないことがあるとリブート(再起動)をするという,
リブート大魔王なのです.
しかし,起動できないから起動するための設定をしたい,
それがうまくいかないから再起動する,とは意味がなさそうな気も…
ただ,僕はdos領域にkernelのイメージとloadlinがあれば
linuxのブートができるから,そこから lilo を設定しなおせば
すなおに行く,と思ったのです.
今考えれば /etc に lilo.conf をコピーするような形で
なんとかならなかったでしょうか…? よくわからん.
で,dos からブートします.
smartdrv /c
loadlin c:\zimage root=/dev/hda3/vmlinuz rw
dos領域でどこかから(無責任な(^^;))持って来たloadlinを
用いてlinuxを起動することができました.
ここではじめて元の環境に再開したわけです.
無事にiketaniでログインでき,怪しげな色のプロンプトを
見ることができました.しかし?なぜかファイルのオーナーがおかしい.
iketani のもののはずなのに root の所有になっています.
iketani というユーザがいないときに展開されたツリーは
root の所有になってしまうのでしょうか.
#uidを残してくれないんだっけ…?
そこで,home だけもう一度展開しなおし.
tar zxfvpB /dos/linuxall.tgz home/
あとは微調整.
パーティションの切り方が違うことで生じた問題を
直すだけなので,
lilo.conf を書いて,lilo を実行,設定.
/etc/fstab を直す.
以上で完了です.
まず,Libretto を開けることについて.
面白いです.また,開けたい気もします.
クロックアップしているため熱がたまりやすいので,方熱対策を
やってみたいなぁ.お手軽なのは,CPUとキーボードの間に
10円玉の形状の銅の円板(笑)張り付けるんだっけ.
どのくらい効果あるのかなぁ…?
それから,Linux について.
いつか FreeBSD にしようと思っているのですが,
こんなに簡単にシステムのバックアップを取れるのなら
気軽に挑戦できそうですね.
あと,今までは自分のhomeだけのバックアップを取っていましたが,
システムのもtreeごと取っておけば,いつでも元通り.
けっこういいですね♪
ぐちゃぐちゃになってしまったので,tarでlinux全体を移動した時の 手順をまとめておきます.上記のまとめです.
フロッピーで起動して目的のハードディスクにパーティションを作成.
バックアップしてあったシステムを入れ直すなど,既にパーティションが
ある場合には当然しないでよい.
fdisk
,
format
をして,
swap を動作
させるところまでやる.
Libretto の場合はLinuxをブートするフロッピーの作成方法が特殊なことに
注意.
swap を動作させた時には僕は念のためリブートをする.しないで
いいのかもしれない.
もう一度フロッピーでブートするが,マウントできればよいので
ネットワーク越しに作業することも考えられる.
アーカイブのあるドライブと目的のドライブをマウントしてから
展開する.
dos領域(/dev/hda1)にソースがある僕の場合は
mkdir /dos
mount /dev/hda1 /dos
そして /dev/hda3 がルートパーティションであるなら
mount /dev/hda3 /mnt
cd /mnt
tar zxfvpB /dos/root.tgz
とすればよい.
また,固めるときに/以下を一つにまとめたが
展開する時にはパーティションに分けたい,という場合も
あらかじめマウントさえしておけば
(この例ではusr は /mnt/usr にマウントすれば)大丈夫であろう.
パーティションの切り分けかたやディスクデバイスの変更が
あったなら,
/etc/fstab に相当するファイル(この例では
/mnt/etc/fstab)を変更せねばならない.
lilo を設定する.僕の方法はまず
dos領域から loadlin を用いてlinuxを起動する.
以下をlinux.bat のようなバッチファイルにしてdosモードで実行.
chev us
smartdrv /c
loadlin c:\zimage root=/dev/hda3/vmlinuz rw
そしてlinuxが起動できたら最後に
/etc/lilo.conf
を編集
/sbin/lilo