[HOME] > PC-UNIX Tips > 内蔵IDEハードディスク交換

内蔵IDEハードディスク交換

Created: 1999.10.17
Modified: 2001.05.26

PC-UNIX Tips

はじめに

思い立って、内蔵のIDEディスクを交換したので、その報告をします。 はっきり言って、かなり苦労しましたが、その分勉強になりました:-) ご参考までに。

ディスク購入

日本橋のSOFMAPで、MELCO社製のIDEディスク[DBI-3200]を購入しました。 現在の内蔵ディスク容量が500MBなので、かなり使い手がありそうです。 価格は、1万円3千円ちょっとでした。初めてIDEディスクを購入しましたが、 結構リーズナブルな価格ですね。

ただ、お店の人にも言われましたが、FMV-499D3ではBIOSの制限で3,200MBytes のディスクを認識しないかもしれないとの警告を頂きました:-) ですが、せっかち な私は「もし、認識せえへんでも、富士通のホームページにBIOSぐらいあるやろ」 と気にせず購入しちまいました。(おいおい)

BIOS制限

結局、FMV-499D3のBIOSできちんと認識することができました。ちゃんと OSでも認識されています。つまりは、BIOSの制限はなく、設定さえ変更すれ ばいいだけのようです。

これにはBIOS設定が下記の項目が"Enabled"になっている必要があり ますので、確認してください。これは今回のように大容量のハードディスク にアクセスできるようにするためのものです。

因みに、BIOSバージョンは起動時に"2.0"と表示されます。ただ、BIOS設定 画面などで確認すると、2,000MBytesぐらいと表示されます。うーん。

あと、InfoSeek などで、"FMV-499D3"で検索すると、参考になる文献がありました。

OS移行

私のマシンは、LinuxとWindowsNTをマルチブート環境で利用しています。 今回、一番苦労したのは、ディスクパーティション変更に伴う、WindwosNTの 移行です。まず、ディスクパーティションの移行内容を示します。

Device 旧ディスク(500MB) 新ディスク(3.0GB)
/dev/hda1 300MB linux:swap 500MB linux:/(ext2)
/dev/hda2 50MB linux:/(ext2) 100MB linux:swap
/dev/hda3 150MB NT:system disk(FAT16) 150MB NT:system disk(FAT16)
/dev/hda4 none none 2,300MB linux:/work(ext2)

*1: サイズはおおざっぱです。

準備するもの

バックアップ

注意: MBRやブートセクタなど、システムの重要なデータを変更しますので、 必ずバックアップを取ってください。

CD-ROM装置の取り外し

本体を開けて、5inchベイのCD-ROM装置を取り外します。これは、 IDE用の電源コードに余りがないため、CD-ROM装置の電源ケーブルを 新IDEディスクに利用するためです。FMV-499D3に、セカンダリIDE ディスクを増設する場合は、CD-ROM装置を取り外さないと、増設 できません。

新IDEディスクをスレーブIDEディスクとして接続

新IDEディスクのジャンパスイッチをスレーブ設定にし、IDEケーブル と電源ケーブルを接続します。

Linux起動

Linuxを起動します。ただ、この時linuxカーネルがCD-ROM装置を 自動認識(?)しようとして、約15分ぐらい起動にかかります。

fdiskでパーティション作成

linuxのfdiskコマンドにて、新IDEディスクにパーティションを 作成します。IDEディスクのスレーブなので、デバイス名は /dev/hdbとなります。また、/dev/hdb3をアクティブ パーティションとして設定します。

# fdisk /dev/hdb

Using /dev/hdb as default device!

Command (m for help): p

Disk /dev/hdb: 128 heads, 63 sectors, 782 cylinders
Units = cylinders of 8064 * 512 bytes

   Device Boot  Begin   Start     End  Blocks   Id  System
/dev/hdb1           1       1     127  512032+  83  Linux native
/dev/hdb2         128     128     152  100800   82  Linux swap
/dev/hdb3   *     153     153     178  104832    6  DOS 16-bit >=32M
/dev/hdb4         179     179     782 2435328   83  Linux native

Command (m for help):
	

mkfsでファイルシステム作成

/dev/hda1, /dev/hda4mkfsにて、 ext2ファイルシステムとしてフォーマットします。

# mkfs -t ext2 /dev/hda1
...
# mkfs -t ext2 /dev/hda4
...
	

/パーティションをtarでデータ移行

/パーティションである/dev/hdb1に、/dev/hda2からtarにて データを移行。本当はSingleUserモードでやるのがええんでしょうが ...

# mount /dev/hdb1 /mnt
# cd /
# tar cvf - . | (cd /mnt; tar xvf - )
...
	

旧ディスクの/dev/hda3をフロッピーディスクに退避

WindowsNTのシステムディスク(ブートパーティション)のデータを フロッピーディスクに退避します。退避したファイルは以下の通りです。

Linuxをフロッピーから起動する準備

後で、旧IDEディスクを取り外し、新IDEディスクをマスタIDE ディスクとしてlinuxを起動するので、フロッピーからLinuxを 起動するように、起動用フロッピーを作成します。これは、Linux のカーネルブートセクタを利用する方法です。

「UNIX MAGAXINE 1998.12 Linuxでリラックス(P.100)」が非常に 参考になります。

# dd if=/vmlinuz of=/dev/fd0
# rdev /dev/fd0 /dev/hda1
	

/dev/hdb1:/etc/fstab修正

新IDEディスクに移行した/etc/fstabを新しいパーティション構成 (/dev/hdb)に合わせて変更します。尚、後で新IDEディスクをマスタIDE にするので、デバイス名を/dev/hdaとして記述する必要があります。

### EDI DISKS
/dev/hda1	/		ext2	defaults	1	1
/dev/hda2	swap		swap	defaults	1	1
/dev/hda4	/work		ext2	defaults	1	1
### Others
/dev/cdrom	/cdrom		iso9660	ro		1	1
none		/proc		proc	defaults	1	1
	

DOSで再起動

DOSフロッピーでDOSを起動します。

formatでCドライブをフォーマット

DOSのformatコマンドで、C:をフォーマットします。

BOOTPARTでWindowsNTブートセクタ作成

ここが今回一番悩んだのですが、新IDEディスクのCドライブ(/dev/hda3) にWindowsNTのNTLDRを起動するように、パーティション(Cドライブ)の 先頭512バイトに、WindowsNTのブートセクタを書き込む必要があります。 今回は、 BOOTPART 2.20を利用して、WindowsNTブートセクタを作成(修復) しました。BOOTPARTは、この他Windows95,DOSのブートセクタを作成 するなど便利な機能があります。

WindowsNTの起動については以下に詳しい解説がありますので、参考 にしてください。

A:> BOOTPART WINNT BOOT:C:
	

/dev/hda3の移行

予めフロッピーに退避しておいた、/dev/hda3のWindowsNTのシステム パーティションのファイル群を、C:にコピーします。念のため、バイナリ ファイルとしてコピーします。

C:> COPY /B A:\*.* .
	

旧IDEディスク取り外し

システムを停止し、マスタIDEディスクとして接続されていた旧IDEディスク を取り外します。代わりに、新IDEディスクのジャンパスイッチをマスタ に変更します。また、CD-ROM装置を元通りに接続し直します。

Linuxをフロッピーから起動

予め作成しておいたLinux起動用フロッピーにて、Linuxを起動します。

/etc/lilo.conf修正

本システムでは、MBRにLILOを利用しています。LILOにより、Linuxと WindowsNTのマルチブート環境を実現しています。

# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/hda
#compact        # faster, but won't work on all systems.
delay = 50
vga = normal    # force sane state
ramdisk = 0     # paranoia setting
force-backup=/boot/boot.300
# End LILO global section
# Linux bootable partition config begins
image = /vmlinuz
  root = /dev/hda1
  label = linux
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends
# DOS bootable partition config begins
other = /dev/hda3
  label = win
  table = /dev/hda
# DOS bootable partition config ends
	

MBR書き込み

liloコマンドにより/dev/hda(マスタIDEなのでデバイス名が変更されている) にMBRを書き込みます。

# lilo -v
...
	

最後に

今回は、WindowsNTのブートセクタを作成する方法がなかなか見つからず、 時間がかかりました。でも、Webで検索すると簡単に見つかりました。インター ネットのボランティア精神は偉大やなあ。

PC-UNIX Tips

Written by kabada