«前の日(11-29) 最新 次の日(12-01)» 追記

ぱぱネット(仮)


2007-11-30 もう無理が利かない

_ 午前半休とってしまった

月〜木まで深夜残業してると(水曜は出張から帰ってからも残業してた) 精神が言うことを利かなくなるな。眼は醒めたんだけどベッドでぐったりしていた。

夏以来、逃避行にも行ったし、辛くなりそうなところで事前に休みいれていたので、 これで今年は20日休んだことになる。過去最高の休み具合だ。 残り56日あるけどね(^_^;

本日のツッコミ(全2件) [ツッコミを入れる]

_ やまさん [いいなぁ、残り56日もあるなんて。 うちの会社なんか、有給休暇40日までしかくれないし、 5日以上休むと、移動の対象..]

_  [1年で23日、翌年余ってると1年分キャリーオーバーするので、 本来は46日が規定ですよ。が、3年目以降も23日以上余..]


2008-11-30 そうだ秋を撮りにいこう

_ toga氏のうpする写真が

いちい素晴らしいので、 俺も!という感じで街へホイホイ飛び出たのだが・・・

_ 自分の限界を感じる

画像の説明画像の説明画像の説明

_ 軽く相鉄線で5駅分歩き

力尽きたので「え」氏を召還。二俣川のスタバで経済について論議。

_ その後

横浜へ移動し寄せ鍋などをつつく。


2011-11-30 Debian squeezeのブートドライブの複製

_ [開発][Linux] ディスクのミラーイメージを作ったとき

同一サイズのディスク間なら、

# dd if=/dev/sda of=/dev/sdb bs=1M [ENTER]

で完全なコピーができる.....そう思っていた時期が私にもありました。

いや正確にはできてはいるらしいのだが、Debian squeezeはある時点で(多分次回ブート時?) 同じUUIDのパーティションを発見すると勝手に書き換えるようなんだ。 これでミラーした方ならともかく、なぜか ブートドライブを書き換えられてしまい 二度とブートせずに鼻血吹くくらい焦った。

勘違いかもしれんけど。なので、UUIDを少し真面目に管理しましょうという話。

_ [開発][Linux] 手順

コピー前

マスターHDDのブートパーティションのuuidを控えておく。 コマンドはblkidを使う(vol_idというのもある)。

# blkid /dev/sda1
/dev/sda1: LABEL="system" UUID="faca9b62-b828-32a7-abf6-1500bc4bf56a" TYPE="ext4"

コピー

普通にディスクごとコピーする。sdaがコピー元、sdbがコピー先とする。当然これを間違えると、 一発でパーティションごと葬ることが可能なので間違えないように。責任とれないし。

# dd if=/dev/sda of=/dev/sdb bs=1M [ENTER]

終わってもコピー先をマウントしないように。

新しいUUIDを作る

uuidgenコマンドを使う。ない場合はapt-get install uuid-runtimeを実行しておく。 これもメモっておくなりエディタで保存しておくこと。

# uuidgen [ENTER]
2008a515-dfab-416f-bb14-82f598342936

ファイルを書き換える

コピー先を適当なマウントポイントにマウントする。例えば/mnt/root2。

# mkdir -p /mnt/root2 [ENTER]
# mount /dev/sdb1 /mnt/root2 [ENTER]

/mnt/root2/etc/fstabをエディタで開き、該当個所を旧UUIDから上記の新UUIDへ変更。 間違えてコピー元の方を変更しないように。

-------/mnt/root2/etc/fstab------
UUID=2008a515-dfab-416f-bb14-82f598342936 / ext4 noatime,errors=remount-ro 0 1
-------/mnt/root2/etc/fstab------

次に/mnt/root2/boot/grub/grub.cfgをエディタで開き、同じ変更を行う。 今度は6個所くらいあるので間違えないように。

-------/mnt/root2/boot/grub/grub.cfg------
search --no-floppy --fs-uuid --set 2008a515-dfab-416f-bb14-82f598342936
(省略)
linux   /boot/vmlinuz-2.6.32-5-amd64 root=UUID=2008a515-dfab-416f-bb14-82f598342936 ro  quiet
(省略その他)
-------/mnt/root2/boot/grub/grub.cfg------

パーティションのUUIDの変更

tune2fsを使う。コピー先のデバイス、かつ、新UUIDを指定。

# tune2fs /dev/sdb1 -U 2008a515-dfab-416f-bb14-82f598342936 [ENTER]

/dev/sd*のコピー

もし/mnt/root2/dev直下にsdb, sdb1などのブロックデバイス用のスペシャルファイルがない場合は、 コピーしておきます。ある場合はやらないでください。

# cp -dpR /dev/sdb* /mnt/root2/dev/ [ENTER]

chroot

/mnt/root2に移動して新システムにchrootしておきます。

# cd /mnt/root2 [ENTER]
# chroot . [ENTER]

initramfsの更新(chroot内)

unameでカーネルバージョンを調べて、initramfsを更新します。 この作業は絶対にchrootした状態で実行してください (下手をするとシステム壊します)

# uname -a [ENTER]
Linux oneseg2 2.6.32-5-amd64 #1 SMP Mon Oct 3 03:59:20 UTC 2011 x86_64 GNU/Linux
# update-initramfs -k 2.6.32-5-amd64 -u [ENTER]

grubの更新(chroot内)

コピー先のシステムに対して、今回変更したgrubを書き込みます。 実際にはgrub.cfgを読み込むのはStage2のはずで、わざわざgrubを書き込む処理は必要ないはずですが、 私が試した限りは実行しないとブートしませんでした。 この作業は絶対にchrootした状態で実行してください (しつこいですが)

# grub-install /dev/sdb [ENTER]

デバイス名が/dev/sdbなのは、chrootしていても現在ブートしているカーネル基準ではコピー先が /dev/sdbだからです。

アンマウント

chrootを抜けて、ディスクをアンマウントして終了です。

# exit [ENTER] (※chroot)
# cd / [ENTER]
# umount /mnt/root2 [ENTER]

_ [開発][Linux] 疲れた

ここらへんの知識は、仮想マシンのインスタンスやディスクイメージを作る際にも応用が可能なので、 覚えておくと良いかもしれません。すごーくニッチな需要しかないと思いますが.....


2001|04|
2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|05|10|

[BANNER]
このサーバーをもう12年も維持しているかと思うとめまいがしますよ。
ツッコミ機能は、ハンドル名が完全日本語じゃないと登録できません。
また、本文にURLが含まれていても登録できません。
いずれもSPAM対策です。
[Panda Papanda]
2006年
11月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

[Papanda]  [Kuma]  [Tomorin]  [Iron]  [Eiza]  [Dokkin]  [Honya]  [Zyou]  [Tsuyo]  [Bike]  [KoeBBS]  [Chukei]  [portal]  [tvmatome]  [KaoPaku] 

訪問者数:(+2560143)