REGZA Z3500のUSB HDDをコピーしつつ交換する

REGZA Z3500のUSB HDDの内容をWD20EARSへ移植する。VineLinux 5.2編

REGZAでHDDを初期化してからxfsdump,xfsrestoreという技もあるが、今回はBigSectorにあわせてパーティションを作成したいのでLinuxでパーティションを作りたい。そして容量も拡張したいという意図があったため別の方式でやってみた次第。どっちみちVineにはxfsdumpがない。

概要

fdiskでBigSectorにあわせたパーティション作成、xfs_copyでファイルシステムコピー、xfs_growでファイルシステム拡張、xfs_adminでUUID移植でOK。

ディスク配置

  • /dev/sdd1 /mnt (旧HDD)
  • /dev/sdc1 /mnt2 (新HDD)

手順

VineLinux 5.2の場合、xfsを使えるように設定する。

# su
# insmod /lib/modules/2.6.27-67vl5/kernel/fs/xfs/xfs.ko
# apt-get install xfsprogs

新HDDのパーティションを作成する(fdisk)

WD20EARSはBigSectorなのでAlignmentをあわせる。

# fdisk -H 224 -S 56 /dev/sdc
(Partition1を再作成)
# fdisk -lu /dev/sdc
Disk /dev/sdc: 2000.3 GB, 2000398934016 bytes
224 heads, 56 sectors/track, 311465 cylinders, total 3907029168 sectors
Units = セクタ数 of 1 * 512 = 512 bytes
Disk identifier: 0xff630c00
デバイス Boot      Start         End      Blocks   Id  System
/dev/sdc1              56  3907016959  1953508452   83  Linux

ファイルシステムコピー (xfs_copy)

# mkfs.xfs -f /dev/sdc1
# date;xfs_copy /dev/sdd1 /dev/sdc1;date
2011年  2月 12日 土曜日 09:48:33 JST
 0%  ... 10%  ... 20%  ... 30%  ... 40%  ... 50%  ... 60%  ... 70%  ... 80%  ... 90%  ... 100%
All copies completed.
強制終了
2011年  2月 12日 土曜日 11:24:08 JST

ファイルシステムサイズ拡張 (xfs_growfs)

# mount -t xfs /dev/sdc1 /mnt2
# df -k
ファイルシステム     1K-ブロック  使用        空き 使用% マウント位置
/dev/sda3              9621880   4401956   4731148  49% /
/dev/sda2                69995     12728     53653  20% /boot
/dev/sda6            758972940 662451804  57967548  92% /home
none                    451724         0    451724   0% /dev/shm
/dev/ram1                15863       144     14900   1% /ramdisk
/dev/sdc1            976628864 492748996 483879868  51% /mnt2
# xfs_growfs /mnt2
meta-data=/dev/sdc1              isize=256    agcount=32, agsize=7630937 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=244189984, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=32768, version=1
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=65536  blocks=0, rtextents=0
data blocks changed from 244189984 to 488377113
# df -k
ファイルシステム     1K-ブロック  使用        空き 使用% マウント位置
/dev/sda3              9621880   4401956   4731148  49% /
/dev/sda2                69995     12728     53653  20% /boot
/dev/sda6            758972940 662451804  57967548  92% /home
none                    451724         0    451724   0% /dev/shm
/dev/ram1                15863       144     14900   1% /ramdisk
/dev/sdc1            1953377380 492750020 1460627360  26% /mnt2
# umount /dev/mnt2

UUIDを移植 (xfs_admin)

旧HDD(/dev/sdd1)のUUIDを新HDD(/dev/sdc1)のHDDへ移植する。

# xfs_admin -u /dev/sdd1
UUID = 6ae3db78-6269-4791-8832-3bb38191907d
# xfs_admin -u /dev/sdc1
UUID = 32a99485-2afd-4e16-a4b1-846fe4247d50
# xfs_admin -U 6ae3db78-6269-4791-8832-3bb38191907d /dev/sdc1

そのほか

  • fdisk&mkfs&tarでコピー&UUIDコピーだけではだめだった。tarがだめなんだろうな。
  • tarよりはxfs_copyのほうが速い。2割くらい速い。
  • .toshiba_xxxのような不要なファイルも削除しなくてよい。REGZAに新ハードディスクをUSB接続するだけで増加した容量が認識される。

所感

メモリは食うがxfs便利だなー。なぜVineLinuxでサポートしないのか。

参考