玄箱PROのシステムバックアップはハートディスクを取り出して、別のLinux BoxにUSBなどで接続すれば可能ですが、けっこう面倒なものです。そこで、ハードディスクを取り出さないでDebian環境のシステムバックアップとリストアを行う手順を自分自身の備忘録としてまとめました。リストアが必要となる状況では正常な精神状態ではないはずなので手順を確認しておくことは必要ですよね。 シリアルコンソールが使えることを前提としています。
玄箱PROのNANDフラッシュから起動するモードを利用して、ハードディスク上のDebian環境をシステムバックアップすることができます。しかし、NANDフラッシュ上から起動するLinuxはBusyBoxのtarを使っているため、「パス名が長過ぎる」というエラーのためすべてのファイルをバックアップすることができません。そこでNANDフラッシュにスタティックリンクとしてコンパイルした普通のtarをインストールします。ビルドはDebian lennyで行いました。
適当なディレクトリで 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
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フラッシュから起動するモードではハードディスクを使用しないためシステムのバックアップには便利です。
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によって異なるかもしれません。
上記の操作で、以下のように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 <https://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をフォーマットしてバックアップしたファイルをそこで展開するだけです。
空のハードディスクに戻す場合は、シリアルコンソールで接続して一時的にフラッシュモードで起動、ハードディスクのパーティション作成、フォーマット、バックアップファイルからリストア、カーネルのコピーという手順となります。
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
/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:~#
成功。