[HOME] [玄箱PROでNTFSを使う] [玄箱PRO Debian化手順] [玄箱PROのUSB-シリアル接続] [miconapl互換コマンドの作成] [玄箱インストールmemo]

玄箱PROのシステムバックアップ

Jun Mizutani 2008/08/16

玄箱PROのシステムバックアップはハートディスクを取り出して、別のLinux BoxにUSBなどで接続すれば可能ですが、けっこう面倒なものです。そこで、ハードディスクを取り出さないでDebian環境のシステムバックアップとリストアを行う手順を自分自身の備忘録としてまとめました。リストアが必要となる状況では正常な精神状態ではないはずなので手順を確認しておくことは必要ですよね。 シリアルコンソールが使えることを前提としています。

NANDフラッシュ(/dev/mtdblock2)のtarを入れ替え

玄箱PROのNANDフラッシュから起動するモードを利用して、ハードディスク上のDebian環境をシステムバックアップすることができます。しかし、NANDフラッシュ上から起動するLinuxはBusyBoxのtarを使っているため、「パス名が長過ぎる」というエラーのためすべてのファイルをバックアップすることができません。そこでNANDフラッシュにスタティックリンクとしてコンパイルした普通のtarをインストールします。ビルドはDebian lennyで行いました。

tar-1.20のコンパイル

適当なディレクトリで tar-1.20.tar.gz を展開します。

jun@KUROBOX-PRO:~$ tar zxf tar-1.20.tar.gz

展開したディレクトリに移動して configure を実行します。

jun@KUROBOX-PRO:~$ cd tar-1.20
jun@KUROBOX-PRO:~/tar-1.20$ ./configure

ライブラリの依存を避けるため、スタティックリンクを指定して tar をコンパイルします。

jun@KUROBOX-PRO:~$ make LDFLAGS=-static

6分ほどでコンパイルが終了します。


テスト

時間がかかりますが、コンパイルした tar のテストを行いました。

jun@KUROBOX-PRO:~/tar-1.20$ time make check
:
略
:
make[2]: Entering directory `/home/jun/tar-1.20/tests'
/bin/sh ./testsuite
## ------------------------ ##
## GNU tar 1.20 test suite. ##
## ------------------------ ##
  1: tar version                                     ok
  2: decompressing from stdin                        ok
  3: mixing options                                  ok
  4: interspersed options                            ok
  5: files-from: empty entries                       ok
  6: files-from: 0-separated file without -0         ok
  7: tar --index-file=FILE --file=-                  ok
  8: tar cvf -                                       ok
  9: append                                          ok
 10: appending files with long names                 ok
 11: append vs. create                               ok
 12: exclude                                         ok
 13: deleting a member after a big one               ok
 14: deleting a member from stdin archive            ok
 15: deleting members with long names                ok
 16: deleting a large last member                    ok
 17: deleting non-existing member                    ok
 18: extract over an existing directory              ok
 19: extracting symlinks over an existing file       ok
 20: extraction loops                                ok
 21: extract + fnmatch                               ok
 22: extracting selected members from pax            ok
 23: mode of extracted directories                   ok
 24: extracting symlinks to a read-only dir          ok
 25: gzip                                            ok
 26: incremental                                     ok
 27: restore broken symlinks from incremental        ok
 28: restoring timestamps from incremental           ok
 29: --listed for individual files                   ok
 30: working --listed                                ok
 31: renamed files in incrementals                   ok
 32: proper icontents initialization                 ok
 33: renamed dirs in incrementals                    ok
 34: move between hierarchies                        ok
 35: cyclic renames                                  ok
 36: changed file types in incrementals              ok
 37: ignfail                                         ok
 38: link count gt 2                                 ok
 39: long names in V7 archives                       ok
 40: long file names divisible by block size         ok
 41: ustar: unsplittable file name                   ok
 42: ustar: unsplittable path name                   ok
 43: ustar: splitting long names                     ok
 44: multivolume dumps from pipes                    ok
 45: skipping a straddling member                    ok
 46: MV archive & long filenames                     ok
 47: split directory members in a MV archive         ok
 48: Restoring after an out of sync folume           ok
 49: old archives                                    ok
 50: recurse                                         ok
 51: working -C with --same-order                    ok
 52: multiple -C options                             ok
 53: short records                                   ok
 54: sparse files                                    ok
 55: extracting sparse file over a pipe              ok
 56: storing sparse files > 8G                       ok
 57: sparse files in MV archives                     ok
 58: sparse files in PAX MV archives, v.0.0          ok
 59: sparse files in PAX MV archives, v.0.1          ok
 60: sparse files in PAX MV archives, v.1.0          ok
 61: update unchanged directories                    ok
 62: volume                                          ok
 63: volume header size                              skipped (volsize.at:32)
 64: compressed format recognition                   ok
 65: short input files                               ok
 66: updating short archives                         ok
 67: truncate                                        ok
 68: grow                                            ok
 69: gtarfail                                        skipped (gtarfail.at:26)
 70: gtarfail2                                       skipped (gtarfail2.at:26)
 71: multi-fail                                      skipped (multi-fail.at:26)
 72: ustar-big-2g                                    skipped (ustar-big-2g.at:26)
 73: ustar-big-8g                                    skipped (ustar-big-8g.at:26)
 74: pax-big-10g                                     skipped (pax-big-10g.at:26)

## ------------- ##
## Test results. ##
## ------------- ##

67 tests were successful.
7 tests were skipped.
make[2]: Leaving directory `/home/jun/tar-1.20/tests'
make[1]: Leaving directory `/home/jun/tar-1.20/tests'
make[1]: Entering directory `/home/jun/tar-1.20'
make[1]: Leaving directory `/home/jun/tar-1.20'

real    25m15.890s
user    10m41.110s
sys     11m15.180s

srcディレクトリにビルドされた tar コマンドがあります。

jun@KUROBOX-PRO:~/tar-1.20$ cd src
jun@KUROBOX-PRO:~/tar-1.20/src$ ls -lt tar
-rwxr-xr-x 1 jun jun 1502219 Aug 14 17:21 tar

ストリップしてファイルサイズを小さくします。

jun@KUROBOX-PRO:~/tar-1.20/src$ strip tar
jun@KUROBOX-PRO:~/tar-1.20/src$ ls -lt tar
-rwxr-xr-x 1 jun jun 841892 Aug 14 17:21 tar

1.5MBから約半分になりました/dev/mtdblock2 には余裕がありますが、小さいに越したことはありません。

一応スタティックリンクになっていることを確認します。

jun@KUROBOX-PRO:~/tar-1.20/src$ file ./tar
./tar: ELF 32-bit LSB executable, ARM, version 1, statically linked, for GNU/Linux 2.6.12, stripped
jun@KUROBOX-PRO:~/tar-1.20/src$ ldd ./tar
        not a dynamic executable

/dev/mtdblock2 にコピー

NANDフラッシュをマウントします。

KUROBOX-PRO:/home/jun/tar-1.20# mount -t jffs2 /dev/mtdblock2 /mnt

/mnt/binにあるbusyboxへのシンボリックリンクを削除し、ビルドした tar をNANDフラッシュにコピーしてtarを入れ替えます。

KUROBOX-PRO:/home/jun/tar-1.20# cd /mnt/bin
KUROBOX-PRO:/mnt/bin# ls -l tarrwxrwxrwx 1 root root 7 Apr 10  2007 tar -> busybox
lrwxrwxrwx 1 root root 7 Apr 10  2007 tar -> busybox
KUROBOX-PRO:/mnt/bin# rm tar
KUROBOX-PRO:/mnt/bin# cp /home/jun/tar-1.20/src/tar .
KUROBOX-PRO:/mnt/bin# ls -l tar
-rwxr-xr-x 1 root root 841892 Aug 14 19:59 tar

システムバックアップ

シリアルコンソールで作業します。再起動後にNANDフラッシュから起動するモード(普通のNASとしてのモード)に一時的に変更します。NANDフラッシュから起動するモードではハードディスクを使用しないためシステムのバックアップには便利です。

NANDフラッシュから起動

Orion1   CPU =  Low

=== KURO U-Boot. ===
 ** LOADER **
 ** KUROBOX BOARD: KURO_BOX  LE (CFG_ENV_ADDR=fffff000)


U-Boot 1.1.1 (Apr 10 2007 - 18:10:08) Marvell version: 1.12.1 - TINY

DRAM CS[0] base 0x00000000   size 128MB
DRAM Total size 128MB
[256kB@fffc0000] Flash: 256 kB
Addresses 20M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (20M - 16M): Done
NAND: 256 MB

Soc: 88F5182 A2
CPU: ARM926 (Rev 0) running @ 500Mhz
Orion 1 streaming disabled
SysClock = 250Mhz , TClock = 166Mhz


USB 0: host mode
USB 1: host mode
PCI 0: PCI Express Root Complex Interface
PCI 1: Conventional PCI, speed = 33000000
Net:   egiga0 [PRIME]
Using 88E1118 phy
hit any key to switch tftp boot.
Hit any key to stop autoboot:  0
<<system_bootend>>
Hit any key to stop autoboot:  0
Marvell>>

2回目の Hit any key to stop autoboot: で何かキーを押してブートを中断します。NANDフラッシュから起動するように以下のコマンドで u-boot環境変数を設定します。次回のブートでHDDから起動するように saveenv コマンドは使用しません。 saveenvしなければ設定を間違えても再起動で元に戻るため安心です。

setenv default_kernel_addr 0x00100000
setenv bootargs_base console=ttyS0,115200
setenv bootargs_root root=/dev/mtdblock2
setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
setenv uImage_block 0
setenv uImage_offset 0x00020000
setenv nand_boot yes
setenv bootcmd 'nboot $(default_kernel_addr) $(uImage_block) $(uImage_offset); bootm $(default_kernel_addr)'

boot

実際は間違えないようにコピー&ペーストすることになりますが、送信のディレイを設定しないと文字の取りこぼしが発生して、わけの分からない状態になるため注意してください。送信のディレイは、TeraTermの場合には以下のように設定します。「COM4」の部分はPCによって異なるかもしれません。


 kpro_serialsetup


上記の操作で、以下のようにNANDフラッシュからLinuxが起動するはずです。

Marvell>> setenv default_kernel_addr 0x00100000
Marvell>> setenv bootargs_base console=ttyS0,115200
Marvell>> setenv bootargs_root root=/dev/mtdblock2
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> setenv uImage_block 0
Marvell>> setenv uImage_offset 0x00020000
Marvell>> setenv nand_boot yes
Marvell>> setenv bootcmd 'nboot $(default_kernel_addr) $(uImage_block) $(uImage_offset); bootm
$(default_kernel_addr)'
Marvell>>
Marvell>> boot

Loading from device 0: <NULL> at 0xfa000000 (offset 0x20000)
   Image Name:   Linux-2.6.12.6-arm1
   Created:      2007-04-10  13:45:13 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1736548 Bytes =  1.7 MB
   Load Address: 00008000
   Entry Point:  00008000
<<stop_sound>>
## Booting image at 00100000 ...
   Image Name:   Linux-2.6.12.6-arm1
   Created:      2007-04-10  13:45:13 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1736548 Bytes =  1.7 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

arg:console=ttyS0,115200 root=/dev/mtdblock2 BOOTVER=1.091
CONFIG_KUROBOX_PLATFORM CONFIG_KUROBOX_KUROBOX ---
Uncompressing Linux...................................................................
.............................................. done, booting the kernel.

略

===== Starting boss.sh =====

                           ...''''..
               '-~~(~~'' .~<shDBDhz+(-.
            .~+sDDBNBDhhszDBNNNNBNNNBDs<-
           ~sBNNNNNNNNNNNNNNNNNNNNNNNNNBs<'
         -=DNNBNNNNNNNNNNNNNNNNNBNNNNNNNNBz<'
       .~zNNNNNNNNNNNNNNNNNNNNNNNNNNBNNNNNNNz~
      '~hBNNNNBNNNNNNNNNNNNNNNNNNNNNNNNNNNNNND+'
      (hNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNBs-
    .~zNNNNNNNNNNNNNNNNNNNNNNNBNNNNNNBNNBNNNNNNBs
    ~sBNNNNNNNNNNNNNNNNNNNNNNNNNNNNBNNNNNNNNNNNNNz
   (+DNNNNNNNNNNNNNNNNNNNNNNDzNNNNNhzDNNBNNNNNNNNBs
   (sNNNNNNNNNNNNNNNNNNNNNNB=~hNNNN=~(sDNNNNNNNNNND
  (+DNNNNNNNNNNNNNNNNNNNNNNs'.=NNNNz- '(zDNNNNNNNNNz
  ~=BNNNNNNNNNNNNNNNNNNNNND- .=BNNNN<.  .(hNNNNNNNNB
  ~sNNNNNNNNNNNNNNNNNNNNND+. .+BNNNN+'    ~sBNNNNNNN
  (zNNNNNNNNNNNNNNNNNNNNND' ..+BNBNB=-     .+BNNNNNNh
  (zNNNNNNNNNNNNNNNNNNNBB= . 'hNBBNs+-      '+DNNNBND
  (sNNNNNNNNNNNNNNNNNNNND(   -DhDBN+<-    .  '=NNNNNB
  ~+DNNBNNNNNNNNNNNNNNNNz'  '=D=Dhh+('      . ~DBNNNB
  ~(sNNNNNNNNNNNNNNNNNNNz.  -hs(zz+<('      . .=NNNNN
   ~=NNBBBBNNNNNNNNNNNNB=  '==-=+s((~.        .~BNNNB
   ~=Nhs<+++hNNNNNNNNBz<- .~=-.s(+-(-          'hBNND
    =Ds+hz( ~hNNNNNNND+'..-+'.-((('<~''...     -hNNNNDs
   ~+z(BN=. .<BNNNNBhhDD=+<~. ~-=shBBDhz+('   -sBNNNBBNBz
  ~(=z(BD- '~~hBNNNs~-(<zDDs+~(shzssszDBNDh=<<sBNNNNNNNBN
  ~~+s<z=.-zh~sNNND<.  .''<zhhh==shDBNNNNNNNBDDNNNNNNNNNh
  ~~<ss+<.zBBs~zND+'      ..-+zDBNNNNNNNNNNNhzNNNNNNNNND+
  ~~(=h<<'+DBz-sBs~         .  (BBNNNNNNNNNz-<BBNNBNNND=
  ~(~<zss(('(z<sD+'            ~DNNNNNNNNNz~ 'sNNNNNNDs
    ~(=Ds=<...-(h<.    .     ..<BNNNNNNNNz~   -hNNNBh
     ~(hNs(.    =-            .=BNNNNNBNs-    .(hs==
     ''<BNz~    '.            .(hBNNBDz<'      .~''-
       -hNNh(. '..             .'<<(++~   .     -''.
       'hBNB+' '                   -+('.       .-''.
       'zDNz(  '.                 ~+<-'''..''. .-.
       ..~(-.  .'.              .~+(.   ..''--''.
                ''.           .'+<~         '~.
               .....          .-' .'---(~~~(<~.
                 ..'.            .((---'-~~(~
                   .'.            '+s=(-'-(+.   < Let's start a KURO-BOX!
                    ....           .(hBDzDD=.       and have a fun time...
                     ..'..          .'<sDh+.
                       .''..       .   ..-- .
                         ..''..         ...
                           .......     .'.
                              ..''..'-'..
                                  ...


[Success]


KUROUTOSHIKOU KUROBOX Series KUROBOX/PRO(KOSHO)
KUROBOX-PRO login:

ログインして、入れ替えた tar のバージョンを確認します。

~ # tar --version
tar (GNU tar) 1.20
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.

NASとしてのモードでは /dev/sda4 が /mnt/disk1 にマウントされ、samba経由でファイルサーバ用の領域になります。バックアップファイルはここに保存して、PCにダウンロードしてリストアに備えます。/dev/sda4 が /mnt/disk1 にマウントされていることを確認します。

~ # df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtd2                65536     16584     48952  25% /
/dev/ram1                 8192       152      8040   2% /mnt/ram
/dev/sda4            155225988  18907784 128433104  13% /mnt/disk1
/dev/mtd3               192512     72712    119800  38% /mnt/mtd

バックアップ

バックアップするパーティション( /dev/sda2 )を /mnt/disk2にマウントします。

~ # mount /dev/sda2 /mnt/disk2
kjournald starting.  Commit interval 5 seconds
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on sda2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.

/mnt/disk2 に移動して、/dev/sda4 が /mnt/disk2 にマウントされていることを確認します。

~ # cd /mnt/disk2
mnt/disk2 # df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtd2                65536     16584     48952  25% /
/dev/ram1                 8192       152      8040   2% /mnt/ram
/dev/sda4            155225988  19211148 128129740  13% /mnt/disk1
/dev/mtd3               192512     72712    119800  38% /mnt/mtd
/dev/sda2              2893660   1129800   1616868  41% /mnt/disk2

今回はkpro_lenny_20080814.tar.gzというファイルにバックアップしました。

/mnt/disk2 # time tar zcf /mnt/disk1/kpro_lenny_20080814.tar.gz .
real    1h 35m 51s
user    1h 33m 53s
sys     1m 14.44s

gzip で圧縮すると非常に時間がかかります。

/mnt/disk2 # time tar cvf /mnt/disk1/kpro_lenny_20080814.tar .
real    3m 26.85s
user    0m 8.39s
sys     1m 3.85s

圧縮しない場合は 3分半で終了しました。展開も圧縮した場合は同じように時間がかかるため、玄箱PRO上では圧縮、伸張を行わないほうがいいと思います。

/mnt/disk1 # ls -l kpro*
-rw-r--r--    1 root     root    310337003 Aug 14 13:48 kpro_lenny_20080814.tar.gz
-rw-r--r--    1 root     root    977899520 Aug 14 13:53 kpro_lenny_20080814.tar

このどちらかのファイルと/dev/sda1 のuImage.baffaloを保存しておけば、いつでもリストアできます。

リストア

ここでは、空の 160GB の HDD にバックアップしたシステムをリストアします。単にシステム領域をリストアする場合は/dev/sda2をフォーマットしてバックアップしたファイルをそこで展開するだけです。


空のハードディスクに戻す場合は、シリアルコンソールで接続して一時的にフラッシュモードで起動、ハードディスクのパーティション作成、フォーマット、バックアップファイルからリストア、カーネルのコピーという手順となります。

NANDフラッシュから起動

Orion1   CPU =  Low

=== KURO U-Boot. ===
 ** LOADER **
 ** KUROBOX BOARD: KURO_BOX  LE (CFG_ENV_ADDR=fffff000)


U-Boot 1.1.1 (Apr 10 2007 - 18:10:08) Marvell version: 1.12.1 - TINY

DRAM CS[0] base 0x00000000   size 128MB
DRAM Total size 128MB
[256kB@fffc0000] Flash: 256 kB
Addresses 20M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (20M - 16M): Done
NAND: 256 MB

Soc: 88F5182 A2
CPU: ARM926 (Rev 0) running @ 500Mhz
Orion 1 streaming disabled
SysClock = 250Mhz , TClock = 166Mhz


USB 0: host mode
USB 1: host mode
PCI 0: PCI Express Root Complex Interface
PCI 1: Conventional PCI, speed = 33000000
Net:   egiga0 [PRIME]
Using 88E1118 phy
hit any key to switch tftp boot.
Hit any key to stop autoboot:  0
<<system_bootend>>
Hit any key to stop autoboot:  0
Marvell>>

バックアップ時と同じように2回目の Hit any key to stop autoboot: で何かキーを押してブートを中断します。NANDフラッシュから起動するように以下のコマンドで u-boot環境変数を設定します。

setenv default_kernel_addr 0x00100000
setenv bootargs_base console=ttyS0,115200
setenv bootargs_root root=/dev/mtdblock2
setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
setenv uImage_block 0
setenv uImage_offset 0x00020000
setenv nand_boot yes
setenv bootcmd 'nboot $(default_kernel_addr) $(uImage_block) $(uImage_offset); bootm $(default_kernel_addr)'

boot
KUROUTOSHIKOU KUROBOX Series KUROBOX/PRO(KOSHO)
KUROBOX-PRO login: root
Password:
login[784]: root login  on `ttyS0'



BusyBox v1.1.1 (2007.04.06-12:02+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

今回はからのハードディスクを接続しているため、/dev/sda4 はマウントされていません。

~ # df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtd2                65536     16624     48912  25% /
/dev/ram1                 8192       152      8040   2% /mnt/ram
/dev/mtd3               192512     72724    119788  38% /mnt/mtd

パーティションの作成

~ # fdisk /dev/sda

The number of cylinders for this disk is set to 19452.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19452, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-19452, default 19452): 7

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (8-19452, default 8):
Using default value 8
Last cylinder or +size or +sizeM or +sizeK (8-19452, default 19452): 373

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (374-19452, default 374):
Using default value 374
Last cylinder or +size or +sizeM or +sizeK (374-19452, default 19452): 390

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Selected partition 4
First cylinder (391-19452, default 391):
Using default value 391
Last cylinder or +size or +sizeM or +sizeK (391-19452, default 19452):
Using default value 19452

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 82
Changed system type of partition 3 to 82 (Linux swap)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
SCSI device sda: 312500000 512-byte hdwr sectors (160000 MB)
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3 sda4
SCSI device sda: 312500000 512-byte hdwr sectors (160000 MB)
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3 sda4
Syncing disks.

作成したパーティションを確認します

~ # fdisk -l /dev/sda

Disk /dev/sda: 160.0 GB, 160000000000 bytes
255 heads, 63 sectors/track, 19452 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1               1           7       56196   83  Linux
/dev/sda2               8         373     2939895   83  Linux
/dev/sda3             374         390      136552+  82  Linux swap
/dev/sda4             391       19452   153115515   83  Linux

フォーマット

/dev/sda1、/dev/sda2、/dev/sda4 を ext3 でフォーマットします。/dev/sda3 はスワップ領域とします。

~ # mke2fs -j /dev/sda1
mke2fs 1.27 (8-Mar-2002)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
14056 inodes, 56196 blocks
2809 blocks (5.00%) reserved for the super user
First data block=1
7 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
~ # mke2fs -j /dev/sda2
mke2fs 1.27 (8-Mar-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
368000 inodes, 734973 blocks
36748 blocks (5.00%) reserved for the super user
First data block=0
23 block groups
32768 blocks per group, 32768 fragments per group
16000 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
~ # mke2fs -j /dev/sda4
mke2fs 1.27 (8-Mar-2002)

Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
19152896 inodes, 38278878 blocks
1913943 blocks (5.00%) reserved for the super user
First data block=0
1169 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: login[1418]: root login  on `pts/0'

done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

~ # mkswap /dev/sda3
Setting up swapspace version 1, size = 139825152 bytes

バックアップファイルの転送

~ # mount /dev/sda4 /mnt/disk1
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sda4, internal journal
EXT3-fs: mounted filesystem with ordered data mode.

マウントした領域のパーミッションを書き込みできるように変更します。

~ # chmod 777 /mnt/disk1

samba を再起動します。

~ # cd /etc/init.d
/etc/init.d # ./smb.sh restart
$Shutting down SMB services:
$Shutting down NMB services:
$Starting NMB services:
$Starting NMB services:

PCからshareとして見える領域 (/dev/sda4) にバックアップしたファイルとカーネルイメージを転送します。

/mnt/disk1 # ls -lt
-rwxrw-rw-    1 nobody   nogroup 977899520 Aug 14 13:53 kpro_lenny_20080814.tar
-rwxrw-rw-    1 nobody   nogroup   1859368 Aug  9 17:09 uImage.buffalo

カーネルイメージの /dev/sda1 へのコピー

/mnt/disk1 # mount /dev/sda1 /mnt/disk2
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
/mnt/disk1 # cp uImage.* /mnt/disk2
/mnt/disk1 # ls -lt /mnt/disk2
-rwxr--r--    1 root     root      1859368 Aug 15 05:02 uImage.buffalo

/mnt/disk1 # umount /mnt/disk2

バックアップファイルのリストア

/dev/sda1 を /mnt/disk2 にマウントします。

/mnt/disk1 # mount /dev/sda2 /mnt/disk2
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sda2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
/mnt/disk1 # cd /mnt/disk2

バックアップファイルを /mnt/disk2 で展開します。

/mnt/disk2 # time tar xf /mnt/disk1/kpro_lenny_20080814.tar
real    2m 9.90s
user    0m 6.90s
sys     1m 10.44s

約2分で終了しました。

動作確認

リブートして動作確認します。

/mnt/disk2 # reboot
Debian GNU/Linux lenny/sid KUROBOX-PRO ttyS0

KUROBOX-PRO login: root
Password:
Last login: Sat Aug  9 17:03:58 JST 2008 from 172.18.21.81 on pts/0
Linux KUROBOX-PRO 2.6.26.2 #1 PREEMPT Sat Aug 9 16:09:19 JST 2008 armv5tel

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
KUROBOX-PRO:~# 

成功。




ご意見・ご感想は,こちらの掲示板 まで.