Hatena::ブログ(Diary)

kinneko@転職先募集中の日記

検索エンジンから来た方へ: 申し訳ないですが、日記なので日々積み重なっています。
目的の情報にたどり着くには、右の検索窓から日記内を再検索してください。
北陸エリア内(もしくはエリア外でも)で転職先を探しています。
(マジです。ネタではありません。ホントですって...)
詳細履歴書をご希望の方はメールでご連絡下さいませ。(kinneko at gmail.com)
chromeで見ると、死ぬほど出るGoogleの広告がブロックできないので、
firefoxでABPを入れるとすっきり見られます。

2008-01-07

LVMで使っていたドライブからデータを救出する

起動しなくなったCentOSのドライブを、同じマシンでCentOS再インストールした環境に接続してみる。

USBコンバータで接続したら、パーティションは見える。

# fdisk -l /dev/sda

Disk /dev/sda: 20.4 GB, 20496236544 bytes
255 heads, 63 sectors/track, 2491 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2491    19904535   8e  Linux LVM

データはLVMの配下のパーティションに入っているので、内容まではすぐには見えない。

見ているsda1は/bootだ。

# pvscan
  WARNING: Duplicate VG name VolGroup00: Existing NfXxQs-lPIp-v5lD-77PG-rlAS-ZBJx-rEw06o (created here) takes precedence over 3TAHdQ-Ay8B-daPR-yVCf-vKQM-55J6-S908aL
  PV /dev/sda2   VG VolGroup00   lvm2 [18.97 GB / 0    free]
  PV /dev/hda2   VG VolGroup00   lvm2 [465.66 GB / 0    free]
  Total: 2 [484.62 GB] / in use: 2 [484.62 GB] / in no VG: 0 [0   ]

VG nameが重複していると怒られた。

sda2だけ名前変更ってできるのかな?

vgrenameのmanなんかを見ても、デバイス名渡しとかはできなさそう。

指定はVG nameだけなので、重複しているともう手も足もでないか。

# vgscan
  Reading all physical volumes.  This may take a while...
  WARNING: Duplicate VG name VolGroup00: Existing NfXxQs-lPIp-v5lD-77PG-rlAS-ZBJx-rEw06o (created here) takes precedence over 3TAHdQ-Ay8B-daPR-yVCf-vKQM-55J6-S908aL
  Found volume group "VolGroup00" using metadata type lvm2
  Found volume group "VolGroup00" using metadata type lvm2

# lvscan
  WARNING: Duplicate VG name VolGroup00: Existing NfXxQs-lPIp-v5lD-77PG-rlAS-ZBJx-rEw06o (created here) takes precedence over 3TAHdQ-Ay8B-daPR-yVCf-vKQM-55J6-S908aL
  ACTIVE            '/dev/VolGroup00/LogVol00' [465.16 GB] inherit
  ACTIVE            '/dev/VolGroup00/LogVol01' [512.00 MB] inherit

sdaのVGだけを変更したいが、このままオンザフライではできなさそう。


ぐぐったら、FedoraのレスキューCDでやるようにと書いてあった。

CentOSのCDでも同じだろうとテスト。


VIA C3なFTS-NASでは起動できない。

kernelロード後にリブートしてしまう。

kernelがi686なのに違いない... orz

そういうディストリビューションは嫌いだよ。


しょうがないので、再びマシンをバラして新しいドライブを外す。

サルベージHDDがUSBの場合は、インストーラーでは後でドライバを組み込んで認識させるのがめんどくさいので、自動認識するように最初から挿し込んでおく。

インストーラーCDで起動。

起動プロンプトにはlinux rescueと入力し、レスキューモードで起動。

言語選択は英語に。日本語で設定しても「ない」といわれてどうせ英語になってしまう。

キーボード選択はjp106に。これは日本語にしておかないとあとでやっかい。

もっとも、すでに手が覚えているので、わたしの場合は英語でも困らない。

"Setup Networking"はNo。

"Rescue"ではSkipを選ぶ。ここで他のを選ぶと、勝手にLVM領域をマウントされてしまい、アンマウントできなくなってしまうので、vgrenameができない。

小さいファイルだけなら、この状態で自動マウントさせてどこかにコピーすればいい。

プロンプト画面に落ちるので、そこからコマンド操作する。

VGの名前を確認して、名前変更、変更が反映されているのを確認。

# lvm vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup00" using metadata type lvm2

# lvm vgrename VolGroup00 VG01
  /dev/hdc: open failed: Read-Only file sysytem
  Attempt to close device '/dev/hdc' which is not open
  Volume group "VolGroup00" successfully renamed to "VG01"

# lvm vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VG01" using metadata type lvm2

変更されたのが確認できた。

exitすると、マシンが再起動されるので、そこで強制終了する。


新しいハードディスクを再接続してマシンを組み上げ、起動する。

古いハードディスクをUSBコンバータ経由で接続する。

# pvscan
  PV /dev/sda2   VG VG01         lvm2 [18.97 GB / 0    free]
  PV /dev/hda2   VG VolGroup00   lvm2 [465.66 GB / 0    free]
  Total: 2 [484.62 GB] / in use: 2 [484.62 GB] / in no VG: 0 [0   ]

# vgscan 
  Reading all physical volumes.  This may take a while...
  Found volume group "VG01" using metadata type lvm2
  Found volume group "VolGroup00" using metadata type lvm2

# lvscan 
  inactive          '/dev/VG01/LogVol00' [18.47 GB] inherit
  inactive          '/dev/VG01/LogVol01' [512.00 MB] inherit
  ACTIVE            '/dev/VolGroup00/LogVol00' [465.16 GB] inherit
  ACTIVE            '/dev/VolGroup00/LogVol01' [512.00 MB] inherit

ちゃんと見えている。

領域をアクティブにする。

# vgchange -ay VG01
  2 logical volume(s) in volume group "VG01" now active
# lvscan
  ACTIVE            '/dev/VG01/LogVol00' [18.47 GB] inherit
  ACTIVE            '/dev/VG01/LogVol01' [512.00 MB] inherit
  ACTIVE            '/dev/VolGroup00/LogVol00' [465.16 GB] inherit
  ACTIVE            '/dev/VolGroup00/LogVol01' [512.00 MB] inherit

領域をマウント。目的のデータをコピー。

# mount /dev/VG01/LogVol00 /mnt/
# cp /mnt/root/Desktop/kernel_build.txt /root/Desktop/

このメモだけ助けたかったので、こんな大げさな話でなくてもよかったのだけど。


後始末。

# umount /mnt/
# vgchange -an VG01
  0 logical volume(s) in volume group "VG01" now active
# lvscan
  inactive          '/dev/VG01/LogVol00' [18.47 GB] inherit
  inactive          '/dev/VG01/LogVol01' [512.00 MB] inherit
  ACTIVE            '/dev/VolGroup00/LogVol00' [465.16 GB] inherit
  ACTIVE            '/dev/VolGroup00/LogVol01' [512.00 MB] inherit

USBを抜いて作業完了。

buttybutty 2009/01/21 17:22 助かりました。
Linuxに詳しくないもので、困っていました。

kinnekokinneko 2009/01/22 09:06 お役に立って何よりです(^^)。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証