本文适用使用VxVM作为磁盘管理软件的Solaris操作系统,且根盘被VxVM封装,只仅学习与交流,转载请注明出处,谢谢.
对根盘(或操作系统引导盘)解封装是VxVM中常见的管理任务之一,其实也不是很难的事情,最关键的一点是要恢复根盘原有的系统分区,特别是当系统分区比较多时.因为在封装后,VxVM会按照自己的格式对分区进行更改.如果在封装之前对系统分区作了保存,那本文就没什么参考价值了.但是很少人有这个备份的习惯,时间一久,就不记得系统原有的分区了.
其实VxVM会保存一份根盘封装前的系统分区,通过其提供的命令,很容易恢复系统原有的分区,该文件被保存在以下位置(文件):
/etc/vx/reconfig.d/disk.d/c#t#d#/vtoc
通过如下命令恢复系统原有分区:
# vxedvtoc -f /etc/vx/reconfig.d/disk.d/c#t#d#/vtoc
该命令提供的功能类似于"fmthard".
但解封装操作一般需要从光盘引导系统,此时vxedvtoc命令就不可用了,而VxVM保存的vtoc文件又不能被用于"fmthard"命令,因为该文件的格式同"prtvtoc"所生成的格式并不一样,两者不能通用.
仔细分析VxVM保存的vtoc文件,我们可以通过如下方法将其转换成fmthard命令所能识别的文件:
vxvm保存的系统分区文件(例子):
# cat /etc/vx/reconfig.d/disk.d/c0t0d0/vtoc
#THE PARTITIONING OF /dev/rdsk/c0t0d0s2 IS AS FOLLOWS :
#SLICE TAG FLAGS START SIZE
0 0x2 0x200 0 31458321
1 0x3 0x200 31458321 16779312
2 0x5 0x200 0 71127180
3 0x0 0x000 0 0
4 0x0 0x000 0 0
5 0x0 0x200 48237633 16779312
6 0x0 0x000 0 0
7 0x0 0x200 65016945 1230714
转换成fmthard所能识别的格式:
(1) 将所有的注释行删除
(2) 将TAG列中的”0x”删除,只保留1位
(3) 将FLAGS列中的”0x2”或”0x0”删除,只保留2位
更改后的内容如下:
0 2 00 0 31458321
1 3 00 31458321 16779312
2 5 00 0 71127180
3 0 00 0 0
4 0 00 0 0
5 0 00 48237633 16779312
6 0 00 0 0
7 0 00 65016945 1230714
或者可直接通过以下命令更改此文件:
# cat vtoc | sed -e '/^#/ d' -e s/0x200/00/g \
-e s/0x201/01/g -e s/0x000/00/g -e s/0x//g > vtoc.new
更改后的文件可以直接应用于命令fmthard中:
# fmthard -s
阅读(3625) | 评论(0) | 转发(0) |