ClonezillaでOSイメージを取得する

ClonezillaでOSイメージバックアップを取るなんてことを仕事で軽くやったので、備忘録的にまとめておこうと思います。

Clonezillaって?

「Clonezilla」は「Norton Ghost」と同じ機能をオープンソースソフトウェアとして提供しようとして開発されているLinuxディストリビューションとのこと。

検証した環境

あまり手頃な環境が無かったので、VirtualBox上のCentOSで実験しました。
バックアップ用イメージファイルを格納するデータ領域として、新規に仮想ディスクを追加しました。

# df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda3              5734416   1606240   3832180  30% /
/dev/sda1               101086     17031     78836  18% /boot
tmpfs                   517352         0    517352   0% /dev/shm
# fdisk /dev/sdb

このディスクのシリンダ数は 1566 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): p

Disk /dev/sdb: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System


最初にext3ファイルシステムを作成しておきます。

# fdisk /dev/sdb

このディスクのシリンダ数は 1566 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): p

Disk /dev/sdb: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-1566, default 1): 
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-1566, default 1566): 
Using default value 1566

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。

警告: 領域テーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
カーネルはまだ古いテーブルを使っています。
新しいテーブルは次回リブート時に使えるようになるでしょう。
ディスクを同期させます。
# mkfs.ext3 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1572864 inodes, 3144715 blocks
157235 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=3221225472
96 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

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

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

OSイメージを作ってみる

ということでやってみます。Expertモードを使ってみましたが、
デフォルト値選択ですすめています。

ClonezillaをLiveCDとして利用して起動させます。


「ja_JP.UTF-8 Japanese | 日本語」を選択します。


「完全なリストからキーマップを作成」を選択します。


「pc / qwerty / Japanese / Standard / Standard」を選択します。


「Start_Clonezilla Clonezilla を開始します」を選択します。


「device-image ディスク/パーティション⇔イメージ」を選択します。


「local_dev ローカルディスク(例:ハードディスク、USBドライブ)をマウント」を選択します。


デバイスを認識させるため、「Enter」キーを押下します。


バックアップ先のパーティションを選択します。今回は「/dev/sdb1」を選んでいます。


「/ ローカルデバイスの最上位ディレクトリ」を選択します。


「Expert エキスパートモード:自分自身のオプションを選択」を選択します。


「savedisk ローカルディスクをイメージに保存」を選択します。


イメージファイルのファイル名を入力します。


コピー元のローカルディスクを選択します。ここでは「/dev/sda」を選択しています。


「-q2 優先度:partclone > partimage > dd」を選択します。


ここはデフォルトのままとしました。


「-z1 gzip 圧縮を使用(高速でイメージはより小さい)」を選択します。


デフォルトで指定されていた「2000」のままとしました。


「はい 保存イメージをチェックします」を選択します。


「-p true 複製終了時に何もしない」を選択します。


ここで「y」を入力すると処理が実行されます。


正常に終わると、このようなメッセージが表示されます。


「0」を選択してシャットダウンします。

リストアしてみる

先ほど取得したイメージファイルをリストアしてみます。
途中まではイメージファイルの取得までと同じ手順で進みます。


「restoredisk イメージをローカルディスクにリストア」を選択します。


先ほど作成したイメージファイルを選択します。


リストア先を指定します。ここでは「/dev/sda」を選択します。


ここはデフォルトのままとしました。


「イメージのパーティションテーブルを使用」を選択します。


「-p true 複製終了時に何もしない」を選択します。


「Enter」を押下します。


「y」を押すと処理が開始されます。


リストア終了時の画面です。


「0」を選択してシャットダウンします。


OSを起動すればリストア完了です。


高度な使い方は試していませんが、結構使いやすいと感じました。


今日はこんなところで。

参考