用 FastBack 实现 Linux 裸机恢复(4)
- UID
- 1066743
|
用 FastBack 实现 Linux 裸机恢复(4)
应对复杂分区的解决方案如果要进行裸机恢复的 Linux 机器具有更复杂的分区,可以参考本章节进行还原配置。下面是可能遇到的复杂的分区类型:
/boot 引导区
/ 根目录
Swap 空间
/boot 引导区
LVM 分区的/ 根目录
硬盘 1:/boot 引导区和/ 根目录
硬盘 2:/opt(这里指包括 FastBack 客户端程序所在的分区)
下面我们将分别介绍针对以上四种不同类型的分区类型进行 Linux 裸机恢复的解决方案。
一块硬盘上包括三个分区
在这种情况,我们只需在中的第七步,同时选择/boot 引导区和 / 根目录的快照即可。
一块硬盘上包括 LVM 分区
在这种情形下,逻辑分区没有被重建,但是/ 根目录已经还原到了所在的硬盘下。以下的例子是备份还原这个分区类型的配置建议:
原始配置:
1
2
3
4
5
6
| Disk /dev/sda
Partition 1 /dev/sda1 /boot
Partition 2 /dev/sda2 VolGroup00
VolGroup00
LogVol00 /
LogVol01 swap
|
还原之后的配置:
1
2
3
4
| Disk /dev/sda
Partition 1 /dev/sda1 /boot
Partition 2 /dev/sda2 /
Partition 3 /dev/sda3 swap
|
在 Fedora 和 SUSE 上运行:
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
31
32
33
34
35
36
37
38
39
40
41
| # fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dde27
Device Boot Start End Blocks Id System
/dev/sda1 * 63 208844 104391 83 Linux
/dev/sda2 208845 79638476 39714816 8e Linux LVM
/dev/sda3 79638477 83886079 2123801+ 82 Linux swap / Solaris
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 83
Changed system type of partition 2 to 83 (Linux)
Command (m for help): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dde27
Device Boot Start End Blocks Id System
/dev/sda1 * 63 208844 104391 83 Linux
/dev/sda2 208845 79638476 39714816 83 Linux
/dev/sda3 79638477 83886079 2123801+ 82 Linux swap / Solaris
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource
busy. The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
|
完成以上配置之后,在的第七步之前,我们还需要做以下的步骤:
1. 编辑 boot 参数:
1
2
| # mount /dev/sda1 /mnt
# vi /mnt/grub/menu.lst
|
2. 编辑内核 kernel 信息,使其指向新的 Root 分区。将原来的
1
2
| kernel /vmlinuz-2.6.18-164.6.1.el5 ro
root=/dev/VolGroup00/LogVol00
|
编辑成
1
2
3
4
| kernel /vmlinuz-2.6.18-164.6.1.el5
ro root=/dev/sda2
save and close
# umount /mnt
|
3. 编辑 fstab 文件指向新的硬盘分区如下:
1
2
| # mount /dev/sda2 /mnt
# vi /mnt/etc/fstab
|
将以下内容
1
2
3
4
5
6
7
| /dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
Tmpfs /dev/shm tmpfs defaults 0 0
Devpts /dev/pts devpts gid=5,mode=620 0 0
Sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
|
改为
1
2
3
4
5
6
7
| /dev/sda2 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
Tmpfs /dev/shm tmpfs defaults 0 0
Devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sda3 swap swap defaults 0 0
|
4. 保存关闭,并卸载此硬盘
5. 重启 BMR 的机器
两块硬盘
在这种分区类型的情况中,我们需要在执行的第七步时,修改 iSCSI 配置信息如:
1
2
3
| Target LinuxBMR
Lun 0 Path=/dev/sda,Type=blockio
Lun 1 Path=/dev/sdb,Type=blockio
|
在执行的第七、八步骤中,对需要还原的每块硬盘重复一次以上的操作。
同时还原多个 LINUX 机器
如果有多台机器需要同时进行裸机还原,需要在每台机器上执行以下步骤:
1. 在执行的第七步时,修改 iSCSI 配置信息如下:
1
2
| Target LinuxBMR_n
Lun 0 Path=/dev/sda,Type=blockio
|
2. 在上的第八和第九步,对需要还原的每块硬盘执行以上步骤。
除了以上几种复杂的分区配置之外,下面是几个常见问题的解决方案:
3. 如果在最后一次重启后,操作系统没有起来并显示“grub>prompt”,可重复执行中的第四步设置 Grub bootloader。
4. 如果你的机器有 IDE 硬盘并且用 fdisk –l 命令查看显示为/dev/hda,但是用 Fedora 或者 SUSE 的启动 CD 下用 fdisk –l 查看,它可能显示为/dev/sda。这是不正确的设备名字(sda 代替了 hda)。这个不正确的设备名将影响设置/etc/fstab 和 grub.menu 这两个文件的配置。因此必须更新确保我们使用的是原始设备名(/dev/hda)。
5. 如果你的 iSCSI 服务在做完裸机恢复之后注销失败了,可以手动停止 iSCSI:
1
2
3
4
5
6
7
8
9
10
11
12
13
| # /etc/init.d/tgtd status
tgtd (pid 2271 2269) is running...
# kill -9 2271
# /etc/init.d/tgtd status
tgtd (pid 2269) is running...
# kill -9 2269
# /etc/init.d/tgtd status
tgtd dead but subsys locked
# /etc/init.d/tgtd stop
# /etc/init.d/tgtd start
Starting SCSI target daemon: [ OK ]
# /etc/init.d/tgtd stop
Stopping SCSI target daemon: [ OK ]
|
|
|
|
|
|
|