HDD を換装してみた - 小江戸Linuxユーザーズグループ

HDD を換装してみた
羽鳥 健太郎(はとちゃん)
はじめに
悲劇は、何気ない日常に起こります。パソコンで遊んでばかりいる子供に歌人が怒り、パソ
コンの奪い合いの果てに強制終了。それから勉強を終えて遊ぼうとした子供から、「起動でき
ない...」と悲しげな声がかかりました。電源スイッチを押すと HDD は回転しますが、画面には
システムがないと表示され、HDD からは微かに「スイッチョン、スイッチョン」と秋の虫のような
音が聞こえます。HDD が機能不全で脳死状態のようです。
まずは TestDisk で修復
今回も TestDisk1のご利益にすがろうと、TestDisk を起動します。しかし、最後の[Write]を
実行してパーティションを書き込ませるところで、次のメッセージが表示されました。
Partion: Read error
何度やっても同じ結果で、息の根を完全に止めてしまい脳死からゾンビ化しているようです。
同じ PC の環境のクローンを作成
ラッキーなことに、同じ PC があったので、その PC の HDD のクローンを作成することにしま
した。しかし、現在手元にある余っている(本当に余っているわけではありませんが)HDD は、
内蔵の HDD が 250MB あるのに対し、120GB と半分以下です。これでハマったようです。
台湾製ディストロ Clonezilla を試してみた
Debian ベースで台湾生まれのディストロ Clonezilla2は、Norton Ghost に似たディスククロー
ンツールです。大まかには、ディスクから DVD などのイメージの作成、イメージからディスクへ
の解凍、ディスクからディスクへのクローン作成をするものです。
1
2
パーティション修復ソフト http://www.cgsecurity.org/wiki/TestDisk
http://clonezilla.org/
これで成功すれば万々歳だったのですが、何度やってもコピーの途中で止まってしまいます。
まだ発展途上なのかもしれません。今後の頑張りに期待しましょう。
商用ツール Acronis True Image Home 2012
さてどうしようと考えたときに、大人はすぐにお金の力を借りようとします。というわけで、以
前使用したことのある Acronis の True Image をウェブからポチりました。
以前のものは、Trure Image 9というもので、S-ATA のドライバを含んでいませんでした。最
新の True Image Home 2012 は S-ATA にもちろん対応しています。ダウンロードしたファイル
から Windows7 にインストールし、メニューから「ブートメディアビルダ」を選択して、CD-R に焼
き付けます。なんで Windows の話ばかりするのかと訝しがるかもしれませんが、実はこの CDR は LiveCD Linux なんです。
これを起動すると、次のメニューが表示されますから、これからツールとユーティリティを選
択して、ディスククローンを作成できます。自動と手動があって、自動を選択すると、クローン元
とクローン先の容量の違いを加味して、自動的に各パーティションのサイズを選択してくれま
す。通常はこちらで楽をして構いませんが、小さな容量のクローン先の HDD でそうすると、換
装してこのクローン先で起動すると、容量が足りないとメッセージがうるさく表示されます。
これを後からパーティションのサイズを Parted Magic などにある GParted で調整することも
できますが、けっこう時間がかかります。ここは手動を選んで、容量が足りないメッセージが表
示されないように、各パーティションのサイズを調整して、実行したほうが効率的です。
MBR の再設定
クローン先の HDD を壊れた HDD と換装して再起動してみましたが、うんともすんともいい
ません。この場合、Windows7 のみの環境であるならば、あらかじめ作成しておいた「Windows
修復ディスク」を起動すれば、MBR を修復してくれます。
Ubuntu と Windows のデュアル環境では、SuperGrub2 の CD でも修復できませんでした。
こういうときは、基本に帰って、Ubuntu 12.04LTS のインストール CD で起動するときに、起動
オプションで、 file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.gz .....
とあるものを、root を grub.lst のあるパーティション(例えば、root=/dev/sda5)に書き換えます。
これで起動ができますので、64bit Linux でやったようにコンソールで、以下を実行すると、元
のように Grub から起動できるようになります。
$ sudo upgrade-grub2
$ sudo grub-install /dev/sda
UUID の更新
起動はできるようになったものの、起動時にエラーが表示されます。これはクローン先で生
成された新たな UUID と、先に設定してあった UUID が違うために、ID が違うよと怒られてい
るからです。
まずは、コンソールから blkid コマンドで新しい UUID を確認してみます。
$ sudo blkid
/dev/sda1: LABEL="PQSERVICE" UUID="28522D8C522D5FB4" TYPE="ntfs"
/dev/sda2: LABEL="ACER" UUID="7C30255230251524" TYPE="ntfs"
/dev/sda3: UUID="ab9563fa-d59e-42bc-8606-d597b55c80a2" TYPE="reiserfs"
/dev/sda5: UUID="0f5276ae-6a45-45ff-bab7-8cdb9d5ff959" TYPE="swap"
確認した UUID を、/etc/fstab に反映させます。
fdisk コマンドを実行すると、パーティションの順番が違うというので、パーティションテーブ
ルを適正化させます。
$ sudo fdisk /dev/sda
......
コマンド(m でヘルプ): x
特別な機能(エキスパート専用)
上級者コマンド(m でヘルプ):f
パーティションの順序を適正化する
上級者コマンド(m でヘルプ):w
テーブルをディスクに書き込み、終了する
dd コマンドがあるじゃない
この顛末を小江戸らぐのオフで話したところ、なんで dd コマンドを使用しないのという指摘
を受けました。dd コマンドは、ファイルのコピーと変換を行うもので、イメージを取り出したりす
ることに使用するためのものです。しかし、ディスクの丸ごとコピーするのに使用するという発
想はありませんでした。
念のため、やり方を押さえておきましょう。
# dd if=/dev/sda of=/dev/sdb
ここで重要なのは、容量の大きな転送元ディスクから小さな転送先ディスクへのコピーは、
伝送元ディスクにあるデータの領域を、先頭のほうからつめていき、転送先ディスクの容量以
内に納めておかなければならないということらしいです。
おまけ
この記事は、実は2つのことが混じっています。内蔵 HDD 250GM が壊れた PC に、USB 接
続の外付け HDD 120GB のものを利用して、クローンを作成して換装したもので、もうひとつ
は、正常な内蔵 HDD 250GB をパーツとして購入した HDD 500 GB に換装しものです。前者
は完全に Windows7 環境で、後者は Windows7 と Ubuntu12.04LTS のデュアルブート環境で
す。
実は、まだ内蔵 HDD 320GB を SSD 64GB に換装するというものもあったのですが、これも
一緒にすると、さすがに訳が分からなくなるので、一度小江戸らぐのオフで話してからまとめよ
うかなと思っています。あぁでも書いちゃいたい...。
基本的には、SSD でも手順は変わりません、違うところは、唯一/etc/fstab の記述です。現在
の SSD 化した PC は、次のように記述しています。
# /etc/fstab: static file system information.
# <file system> <mount point> <type> <options>
<dump> <pass>
proc
/proc
proc nodev,noexec,nosuid 0
0
# / was on /dev/sda5 during installation
UUID=cf9c4080-fbd2-4ad9-99ba-47b52b2e8d11 /
ext4
discard,noatime,errors=remount-ro 0
1
# swap was on /dev/sda6 during installation
UUID=b1a35472-1c53-4367-93b6-f69a2c6f3c04 none swap discard,sw
0
0
ちょっと分かりにくいですが、オプションに discard を記述して、さらにファイルシステムでは
noatime を追加しています。discard は ext4 専用のパラメータで、SDD に特化した機能を提供
します。swap にも記述してあるのは、きっと間違いでしょう (^^;