別のHDコピーメモ


★★★★Linuxシステムを別のHDにコピーする★★★★
1.ハードディスクの接続
2.新しい HD のパーティション
3.新しい HD のフォーマット
4.新しい HD のマウント・ファイルコピー
5.fstab の修正
6.LILO の準備
7.新しい HD で起動

☆☆☆☆☆☆☆☆☆☆☆☆
1.ハードディスクの接続
☆☆☆☆☆☆☆☆☆☆☆☆

1.BIOSで接続するHDが認識されるように設定する。 2.HDのマスタ、スレーブのジャンパを設定します。 3.コピーするHDを接続する。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
2.新しい HD のパーティション
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

以下手元にあるHAPPマシンのHDコピーを元に説明します。

1.まず最初にfdiskで現状のパーティションを調査する。

☆☆☆☆コピーするDISKのパーティション確認☆☆☆☆

[root@happy ode]# /sbin/fdisk /dev/hda -l ディスク /dev/hda: ヘッド 255, セクタ 63, シリンダ 1027 ユニット = シリンダ数 of 16065 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hda1 1 259 2080386 83 Linux /dev/hda2 260 268 72292+ 82 Linux スワップ /dev/hda3 269 523 2048287+ 83 Linux
☆☆☆☆DISKのサイズ確認☆☆☆☆
[root@happy ode]# df -m ファイルシステム 1M-ブロック 使用済 使用可 使用率% マウント場所 /dev/hda1 2000 1763 135 93% / /dev/hda3 1969 1504 364 81% /vine1.1
2.新しい HD のパーティションを作成する。
[root@happy ode]# /sbin/fdisk /dev/hdb
☆☆☆☆HELPでコマンド一覧確認☆☆☆☆
コマンド (m でヘルプ): m コマンドの動作 a ブート可能フラグをつける b bsd ディスクラベルを編集する c dos 互換フラグをつける d 領域を削除する l 既知の領域タイプをリスト表示する m このメニューを表示する n 新たに領域を作成する o 新たに空の DOS 領域テーブルを作成する p 領域テーブルを表示する q 変更を保存せずに終了する s 空の Sun ディスクラベルを作成する t 領域のシステム ID を変更する u 表示/項目ユニットを変更する v 領域テーブルを照合する w テーブルをディスクに書き込み、終了する x 特別な機能 (エキスパート専用)
☆☆☆☆'/'のパーテション作成☆☆☆☆
コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 1 最初 シリンダ (1-784, 初期値 1): 初期値 1 を使います 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-784, 初期値 784): +4000M コマンド (m でヘルプ): p :領域表示コマンド ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 784 ユニット = シリンダ数 of 16065 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hdb1 1 510 4096543+ 83 Linux
☆☆☆☆'/swap'のパーテション作成☆☆☆☆
コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p :今回は基本を指定していますが、 基本領域は4つまでなので5領域以上(SWAPを含む)指定する場合は拡張eを指定すること!!! 領域番号 (1-4): 2 最初 シリンダ (511-784, 初期値 511): 初期値 511 を使います 終点 シリンダ または +サイズ または +サイズM または +サイズK (511-784, 初期値 784): 519 コマンド (m でヘルプ): p ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 784 ユニット = シリンダ数 of 16065 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hdb1 1 510 4096543+ 83 Linux /dev/hdb2 511 519 72292+ 83 Linux
☆☆☆☆確保した領域2をスワップに変更☆☆☆☆
コマンド (m でヘルプ): t 領域番号 (1-4): 2 16進数コード (L コマンドでコードリスト表示): l 0 空 17 隠し HPFS/NTFS 5c Priam Edisk a5 BSD/386 1 FAT12 18 AST Windows ス ザ1 SpeedStor a6 OpenBSD 2 XENIX root 1b Hidden Win95 FA 63 GNU HURD または a7 NeXTSTEP 3 XENIX usr 1c Hidden Win95 FA 64 Novell Netware b7 BSDI fs 4 FAT16 <32M 1e Hidden Win95 FA 65 Novell Netware b8 BSDI スワップ 5 拡張領域 24 NEC DOS 70 DiskSecure Mult c1 DRDOS/sec (FAT- 6 FAT16 3c PartitionMagic 75 PC/IX c4 DRDOS/sec (FAT- 7 HPFS/NTFS 40 Venix 80286 80 古い Minix c6 DRDOS/sec (FAT- 8 AIX 41 PPC PReP Boot 81 Minix / 古い Li c7 Syrinx 9 AIX ブート可能 42 SFS 82 Linux スワップ db CP/M / CTOS / . a OS/2 ブートマネ 4d QNX4.x 83 Linux e1 DOS access b Win95 FAT32 4e QNX4.x 2nd part 84 OS/2 隠し C: ド e3 DOS R/O c Win95 FAT32 (LB 4f QNX4.x 3rd part 85 Linux 拡張領域 e4 SpeedStor e Win95 FAT16 (LB 50 OnTrack DM 86 NTFS ボリューム eb BeOS fs f Win95 拡張領域 51 OnTrack DM6 Aux 87 NTFS ボリューム f1 SpeedStor 10 OPUS 52 CP/M 8e Linux LVM f4 SpeedStor 11 隠し FAT12 53 OnTrack DM6 Aux 93 Amoeba f2 DOS セカンダリ 12 Compaq 診断 54 OnTrackDM6 94 Amoeba BBT fd Linux raid 自動 14 隠し FAT16 <32M 55 EZ-Drive 9f BSD/OS fe LANstep 16 隠し FAT16 56 Golden Bow a0 IBM Thinkpad ハ ff BBT
☆☆☆☆ここでシステムIDをスワップに変更☆☆☆☆
16進数コード (L コマンドでコードリスト表示): 82 領域のシステムタイプを 2 から 82 (Linux スワップ) に変更しました コマンド (m でヘルプ): p ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 784 ユニット = シリンダ数 of 16065 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hdb1 1 510 4096543+ 83 Linux /dev/hdb2 511 519 72292+ 82 Linux スワップ
☆☆☆☆'/vine1.1'の作成☆☆☆☆
コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 3 最初 シリンダ (520-784, 初期値 520):リターンのみ 初期値 520 を使います 終点 シリンダ または +サイズ または +サイズM または +サイズK (520-784, 初期値 78 4):リターンのみ 初期値 784 を使います コマンド (m でヘルプ): p ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 784 ユニット = シリンダ数 of 16065 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hdb1 1 510 4096543+ 83 Linux /dev/hdb2 511 519 72292+ 82 Linux スワップ /dev/hdb3 520 784 2128612+ 83 Linux コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 警告: DOS 6.x 領域を作成、または変更してしまった場合は、 fdisk マニュアルページにある追加情報を参照してください。 ディスクを同期させます。
☆☆☆☆作成したパーティションの確認☆☆☆☆
[root@happy ode]# /sbin/fdisk /dev/hdb -l ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 784 ユニット = シリンダ数 of 16065 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hdb1 1 510 4096543+ 83 Linux /dev/hdb2 511 519 72292+ 82 Linux スワップ /dev/hdb3 520 784 2128612+ 83 Linux [root@happy ode]# /sbin/fdisk /dev/hda -l ディスク /dev/hda: ヘッド 255, セクタ 63, シリンダ 1027 ユニット = シリンダ数 of 16065 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hda1 1 259 2080386 83 Linux /dev/hda2 260 268 72292+ 82 Linux スワップ /dev/hda3 269 523 2048287+ 83 Linux


☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
3.新しい HD のフォーマット
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

☆☆☆☆作成したパーティション'hdb1'をEXT2でフォーマット☆☆☆☆

[root@happy ode]# /sbin/mkfs.ext2 /dev/hdb1 (※参考 /sbin/mkfs -j /dev/hdb1 EXT3の場合) mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 513024 inodes, 1024135 blocks 51206 blocks (5.00%) reserved for the super user First data block=0 32 block groups 32768 blocks per group, 32768 fragments per group 16032 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Writing superblocks and filesystem accounting information: done
☆☆☆☆作成したパーティション'hdb3'をEXT2でフォーマット☆☆☆☆
[root@happy ode]# /sbin/mkfs.ext2 /dev/hdb3 mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 266560 inodes, 532153 blocks 26607 blocks (5.00%) reserved for the super user First data block=0 17 block groups 32768 blocks per group, 32768 fragments per group 15680 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Writing superblocks and filesystem accounting information: done
☆☆☆☆作成したパーティション'hdb2'をSWAPでフォーマット☆☆☆☆
[root@happy ode]# /sbin/mkswap /dev/hdb2 スワップ空間バージョン 0 を設定します、サイズ = 74022912 バイト


☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
4.新しい HD のマウント・ファイルコピー
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

☆☆☆☆新規HDを'/new-disk'でマウントする☆☆☆☆

[root@happy ode]# mkdir /new-disk [root@happy ode]# mount -t ext2 /dev/hdb1 /new-disk [root@happy ode]# mkdir /new-disk/vine1.1 [root@happy ode]# mount -t ext2 /dev/hdb3 /new-disk/vine1.1
☆☆☆☆マウントされていることを確認☆☆☆☆
[root@happy ode]# df ファイルシステム 1k-ブロック 使用済 使用可 使用率% マウント場所 /dev/hda1 2047696 1804540 139140 93% / /dev/hda3 2015964 1539936 373616 81% /vine1.1 /dev/hdb1 4032092 24 3827244 1% /new-disk /dev/hdb3 2095108 20 1988660 1% /new-disk/vine1.1
☆☆☆☆ハードコピー用シェルスクリプトを作成☆☆☆☆
[root@happy /root]# pwd /root [root@happy /root]# cat hdcopy.sh cd / && echo cp -a `/bin/ls -1Ab | egrep -v "^new-disk$|^proc$"` /new-disk | sh
☆☆☆☆シングルユーザーへ☆☆☆☆
/sbin/telinit 1
☆☆☆☆ファイルコピー実行☆☆☆☆
sh hdcopy.sh
☆☆☆☆/proc ディレクトリ作成☆☆☆☆
[root@happy /new-disk]# mkdir /new-disk/proc



☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
5.fstab の修正
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

今回のHAPPYサーバーのコピーでは領域名が同じだったので修正なしでしたが
領域割当で変更がある場合の部分を変更します。

[ode@happy /etc]$ pwd /etc [ode@happy /etc]$ cat fstab /dev/hda1 / ext2 defaults 1 1 /dev/hda3 /vine1.1 ext2 defaults 1 2 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner 0 0 none /proc proc defaults 0 0 none /proc/bus/usb usbdevfs defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 /dev/hda2 swap swap defaults 0 0

                                                                                                                                                            • -

※ラベルを設定する必要がある場合もあります。

[root@linux /root]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
/dev/hda6 swap swap defaults 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

[root@linux /root]# e2label /dev/hdb5 /
[root@linux /root]# e2label /dev/hdb5
/

                                                                                                                                                            • -


☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
6.LILO の準備
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

1.2台目のHDを繋いだまま新規HDにブート作成する為にLILOを修正

緑色コメントアウトしたオリジナル、赤色は 新規HDに書くために一時的に書き換えたところ [root@happy etc]# cat lilo.conf disk=/dev/hdb bios=0x80 # 2 つ目のハードディスクを 1 つ目のハードディスク boot=/dev/hdb # 2 つめのハードディスクに LILO をインストール #boot=/dev/hda map=/new-disk/boot/map #map=/boot/map install=/new-disk/boot/boot.b #install=/boot/boot.b prompt timeout=50 message=/boot/message append="apm=on" default=linux2.4.13 #image=/boot/vmlinuz image=/new-disk/boot/vmlinuz label=linux2.4.13 read-only root=/dev/hda1 image=/boot/vmlinuz-2.2.18-0vl4.2 label=Vine2.1.5 read-only root=/dev/hda1 image=/vine1.1/boot/vmlinuz-2.0.36-3vl3 label=Vine1.1 read-only root=/dev/hda3
2.新しい HD にLILO をインストール
/sbin/lilo -C /new-disk/etc/lilo.conf


☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
7.新しい HD で起動
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

1.新しいHDに繋ぎ換えてジャンパをマスタに変更してブートする
2.ブート成功したら、LILOを元に戻す。

[root@happy etc]# cat lilo.conf boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 message=/boot/message append="apm=on" default=linux2.4.13 image=/boot/vmlinuz label=linux2.4.13 read-only root=/dev/hda1 image=/boot/vmlinuz-2.2.18-0vl4.2 label=Vine2.1.5 read-only root=/dev/hda1 image=/vine1.1/boot/vmlinuz-2.0.36-3vl3 label=Vine1.1 read-only root=/dev/hda3
3.再度LILOをインストールして再起動したら無事終了!!!
/sbin/lilo -C /etc/lilo.conf