同じ計算機に ある 異なった ハード ディスクの 領域に ファイルをコピー をする 方法として 色々な 物が 有るようですが windows に関しては なかなか 美味く 行きません。 cp は どうも 不味いようです dd は 美味く行くのです が ハードディスクの 使用状態 まで コピー するので 広い 領域に 持っていっ ても 使用範囲は 同じ ということになります。 今までは 領域を 同じ様にして 有る程度の 無駄は 仕方が 無い という 使いかたを していました
実際に 使ってみます この場合 /dev/hda1 に インストール済みの windows98 を /dev/hdb1 に コピー すると いう事です。
/dev/hda1 と /dev/hdb1 の 容量は 同じに 設定した場合です
# fdisk -lu Disk /dev/hda: 255 heads, 63 sectors, 524 cylinders Units = sectors of 1 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 63 1783214 891576 c Win95 FAT32 (LBA) Disk /dev/hdb: 255 heads, 63 sectors, 1216 cylinders Units = sectors of 1 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 63 1783214 891576 c Win95 FAT32 (LBA) /dev/hdb2 1783215 3807404 1012095 82 Linux swap /dev/hdb3 3807405 19535039 7863817+ 83 Linux
また 領域の 開始 終了も 同じ ということです。これは /dev/hda1 に windows98 を インストール した後 linux の fdisk mkdosfs を 使用して /dev/hdb1 に 新しく 空の 領域を作成した 状態です。
# parted /dev/hdb Warning: Unable to determine if partitions are mounted via /proc/mounts or /etc/mtab. Make sure you don't attempt to resize or modify mounted file systems. (Even read-only mounted) Ignore/Cancel? I GNU Parted 1.6.11 Copyright (C) 1998 - 2004 Free Software Foundation, Inc. This program is free software, covered by the GNU General Public License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Using /dev/hdb Information: The operating system thinks the geometry on /dev/hdb is 1216/255/63. Therefore, cylinder 1024 ends at 8032.499M. (parted) cp Source device? [/dev/hdb]? /dev/hda Source partition number? 1 Destination partition number? 1 (parted) quit Information: Don't forget to update /etc/fstab, if necessary.
/dev/hda1 から /dev/hdb1 への コピー は完了です。内容を 確認しておき ましょう
# mount /dev/hdb1 /mnt/ # ls /mnt/ My Documents/ bootlog.prv* detlog.txt* msdos.sys* suhdlog.dat* Program Files/ bootlog.txt* dosime.sys* netlog.txt* system.1st* aaa.txt* command.com* io.sys* recycled/ videorom.bin* autoexec.bat* config.sys* msdos.---* setuplog.txt* windows/ sv:~# cat /mnt/aaa.txt whrere am I? # df | sed 2d Filesystem 1k-blocks Used Available Use% Mounted on /dev/hdb1 889816 239772 650044 27% /mnt
これは 成功したようだ、ここの ”aaa.txt”というのは parted で コピー を した後 grub の boot disk にて 立ち上げた windows98 にて 作成した 物で あり そうしないと /dev/hda1 の 元の 物と 区別がつかないので その様な 対 応をしたということです。
コピー元と コピー先が 同じ 容量 なので dd にて 処理する 内容と 同じで 特に メリットは 有りません。では 容量が 異なる場合を 見て行きたいと 思い ます。
にゃんたろう 拝!
2007年 6月29日 (金) 22:31:12 JST 作成