2012.01.30 14:46
1. 서버 리부팅, SMS 모드

 


 


2. Service mode 로 부팅









3. Service mode 로 부팅후 rootvg 마운트해 패스워드 변경








출처: http://efrit.tistory.com/entry/AIX-root-password-분실시 [여니 블로그]

Posted by 익스퍼트
,

HP-UX LVM

카테고리 없음 2017. 3. 3. 11:38

1. LVM Disk Layout

Boot Disk(Root Disk)

 

LIF Header(Logical Interchange Format)  
LIF
는 여러가지 HP computer system간에 파일교환을 위한 표준 mass storage Format으로서 root, swap, dump devices phygical volume에 존재하며 LIF Header정보는 mkboot명령어로 만들어진다.

 

BDRA(Boot Data Reserved Area)  

이 영역은 root, primary swap, dump logical volume을 구성하기 위한 정보뿐만 아니라 root file system mount하고 root volume group LVM disk의 위치와 size를 가지고 있다

 

LIF Directory Area  

이 영역은 HPUX, LABEL, ISL, AUTO file등을 포함하고 있으며 mkboot명령어로 만들어진다.

 

# lifls -v -l /dev/dsk/c0t6d0 명령어로 볼수있다.

 

u

Non Boot Disk(Data Disk)

 

PVRA(Physical Volume Reserved Area)  

Physical Volume에 관한 정보를 포함한다. pvcreate명령으로 만들어진다.

 

VGRA(Volume Group Reserved Area) 

전체 Volume Group에 대한 정보를 가지고 있으며 Volume Group에 속해있는 각각의 Physical Volume에는 VGRA의 복사본이 들어있다.
VGRA
Volume Group quorum정보를 가지고 있는 VGSA(Volume Group Status Area)  Volume Group을 구성하기 위해 필요한 device driver정보를 가지고 있는 VGDA(Volume Group Descriptor Area)영역이 있다.
         

User Data Area 

이 영역은 모든 유저 데이타가 저장되는 곳으로서 file system, virtual memory(swap), user application들이 들어있다. Volume Group이 만들어 질때 이 영역은 fixed size physical extent logical extent map으로 나뉘어진다.

 

Bad Block Relocation Area 

이 영역은 bad block recovery mechanism에 관한 정보를 가지고 있다.

 

LVM Overhead

LVM에 사용되는 Data구조는 disk space에 대한 약간의 Overhead를 소비한다 Overhead Bootable LVM disk 2912Kb의 고정된 크기로 사용하며 Non Bootable LVM disk는 보통 400Kb를 사용하지만 Volume Group의 크기에 따라 다르다.

 

Non Bootable disk Overhead vgcreate명령어나 SAM에서 사용하는 parameter에 따라 다르며 만약 small extent size를 만들거나 많은 physical volume을 만들때는 LVM 데이타 구조는 더 커질것이다.

       

PE(Phygical Extent)

Logical Volume space를 할당하는 allocation의 기본단위이며 Default값은 4MB이다. 하나의 Phygical Volume에 포함된 연속적인 addressable disk block이며 Volume Group에서는 그 size가 항상 같다.

u

LE(Logical Extent)

하나의 logical volume에서 논리적으로 연속적인 logical block이며 Volume mirror가 되지 않았으면 Phygical Extent와 항상 일치한다. Root disk logical extent는 반드시 contiguous해야 하며 Data disk contiguous하지 않아도 된다.

 

2. LVM 구성을 위한 사전 정보수집 방법

# ioscan -fnkCdisk
# diskinfo /dev/rdsk/c0t5d0
# lssf /dev/dsk/c0t5d0
# strings /etc/lvmtab
# lvlnboot -v
# vgdisplay -v /dev/vg00
# lvdisplay -v /dev/vg00/lvol1
# pvdisplay -v /dev/dsk/c0t5d0

 

3. New Volume Group Create하는 방법

# vi vgcreate.sh

pvcreate -f /dev/rdsk/c0t5d0
mkdir /dev/vg01
mknod /dev/vg01/group c 64 0x010000
vgcreate /dev/vg01 /dev/dsk/c0t5d0
lvcreate -l 250 /dev/vg01 : (# lvcreate -L 1000 /dev/vg01
과 같다)
lvcreate -l 250 /dev/vg01
newfs -F vxfs /dev/vg01/rlvol1
newfs -F vxfs /dev/vg01/rlovl2
:wq

# sh vgcreate.sh
# mkdir /disk1
# mkdir /disk2
# vi /etc/fstab
# mountall
또는 # mount -a
# vgdisplay -v /dev/vg01
로 확인
# strings /etc/lvmtab
으로 확인

 

4. New Lvol Create하는 방법

# vgdisplay /dev/vg01

--- Logical volumes ---
   LV Name                     /dev/vg01/lvol1
   LV Status                   available/syncd
   LV Size (Mbytes)           1000
   Current LE                  250
   Allocated PE                250
   Used PV                     1

--- Physical volumes ---
   PV Name                     /dev/dsk/c0t8d0
   PV Status                   available
   Total PE                    508
   Free PE                     258

 

# lvcreate -l 258 /dev/vg01 
 
또는 (# lvextend -L 1032 /dev/vg01/lvol1)
# vgdisplay -v /dev/vg01
로 확인
# newfs -F vxfs /dev/vg01/rlvol2
# vi /etc/fstab
추가
# mountall

 

5. Lvol size Extend하는 방법

# vgdisplay /dev/vg01

--- Logical volumes ---
   LV Name                     /dev/vg01/lvol1
   LV Status                   available/syncd
   LV Size (Mbytes)           1000
   Current LE                  250
   Allocated PE                250
   Used PV                     1

--- Physical volumes ---
   PV Name                     /dev/dsk/c0t8d0
   PV Status                   available
   Total PE                    508
   Free PE                     258

# umount /dev/vg01/lvol1  또는 # umount /mountpoint
# lvextend -l 508 /dev/vg01/lvol1 
 
또는 (# lvextend -L 2032 /dev/vg01/lvol1)
# vgdisplay -v /dev/vg01
로 확인
# extendfs -F vxfs /dev/vg01/rlvol1
# vi /etc/fstab
# mountall

 

6. Lvol size reduce하는 방법

# vgdisplay /dev/vg01

--- Logical volumes ---
   LV Name                     /dev/vg01/lvol1
   LV Status                   available/syncd
   LV Size (Mbytes)           2032
   Current LE                  508
   Allocated PE                508
   Used PV                     1

--- Physical volumes ---
   PV Name                     /dev/dsk/c0t8d0
   PV Status                   available
   Total PE                    508
   Free PE                     0

# /dev/vg01/lvol1 data tar,cpio,fbackup등을 이용하여 full backup
# umount /dev/vg01/lvol1
# lvreduce -l 250 /dev/vg01/lvol1
# newfs -F vxfs /dev/vg01/rlvol1
# vgdisplay -v /dev/vg01
# mount -a
# tar,cpio,fbackup
등을 이용하여 backup받은 data recover

 

7. Volume Group New Disk Extend하는 방법

# pvcreate -f /dev/rdsk/c0t8d0 
# vgextend /dev/vg01 /dev/dsk/c0t8d0
# vgdisplay -v /dev/vg01
로 확인

 

만약 /dev/dsk/c0t8d0 /dev/dsk/c0t9d0 두개의 disk 추가한다면...


# pvcreate -f /dev/rdsk/c0t8d0 
# pvcreate -f /dev/rdsk/c0t9d0
# vgextend /dev/vg01 /dev/dsk/c0t8d0 /dev/dsk/c0t9d0
# vgdisplay -v /dev/vg01
로 확인
# strings /etc/lvmtab
으로 확인

 

 만약 /dev/dsk/c0t8d0 Alternative Pass /dev/dsk/c1t8d0 라면..


# pvcreate -f /dev/rdsk/c0t8d0
# vgextend /dev/vg01 /dev/dsk/c0t8d0 /dev/dsk/c1t8d0
# vgdisplay -v /dev/vg01
# strings /etc/lvmtab

 

8. Volume Group에서 Physical Volume Reduce하는 방법

volume group /dev/vg01에서 phygical volume /dev/dsk/c0t1d0 remove하려면..

 

# vgreduce /dev/vg01 /dev/dsk/c0t1d0  : /dev/vg01 lvol이 없는경우
# strings /etc/lvmtab
# vgdisplay -v /dev/vg01

Mirrored vg01 volume group에서 missing PVs를 강제로 없애려면..

 

# vgreduce -f /dev/vg01

ð Missing PVs 가 성공적으로 remove되면 다음과 같은 message가 나타난다.

           PV with key 0 sucessfully deleted from vg /dev/vg01

           Repair done, please do the following steps.....:

           1.  Save /etc/lvmtab to another file.

           2.  Remove /etc/lvmtab.

           3.  Use vgscan -v to recreate /etc/lvmtab.

           4.  NOW use vgcfgbackup(1M) to save the LVM setup.

 

 

9. Volume Group Remove하는 방법
ð volume group /dev/vg01 remove하려면..
 
# tar,cpio,fbackup,omniback
등으로 remove volume group의 모든 lvol backup한다.
# lvremove /dev/vg01/lvol1  : vg01
의 모든 lvol remove한다.
# lvremove /dev/vg01/lvol2
# vgreduce /dev/vg01 /dev/dsk/c0t7d0 :
이 명령어는 vg01 2개 이상의 
 
디스크가 존재할때 하나의 디스크만 남기고 모두 reduce한다.
# vgremove /dev/vg01
# strings /etc/lvmtab
으로 확인

 

 

10. vgexport Volume Group Remove하는 방법

# umount /dev/vg01/lvol1
# umount /dev/vg01/lvol2
# vgchagne -a n /dev/vg01
# vgexport -m /tmp/vg01.map /dev/vg01
# strings /etc/lvmtab

 

 

11. Root Disk Mirroring하는 방법

root disk /dev/vg00 phygical volume /dev/dsk/c0t6d0이고
또다른 disk /dev/dsk/c1t6d0를 추가하여 root disk mirroring을 하려면..

작업전에 먼저 HP MirrorDisk/UX Application Install한다.

 

# ioscan -fnkCdisk /dev/dsk/c1t6d0 HW Path확인
# vi root_mirror.sh
  pvcreate -B -f /dev/rdsk/c1t6d0
  vgextend /dev/vg00 /dev/dsk/c1t6d0
  mkboot /dev/dsk/c1t6d0
  mkboot -a "hpux -lq(10/1.6.0;0)/stand/vmunix" /dev/dsk/c1t6d0
  mkboot -a "hpux -lq(10/0.6.0;0)/stand/vmunix" /dev/dsk/c0t6d0
  setboot -a 10/1.6.0
  lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c1t6d0
  lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c1t6d0
  lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c1t6d0
  lvlnboot -R
:wq
# sh root_mirror.sh
# lvlnboot -v
로 확인
# strings /etc/lvmtab
으로 확인
# lvdisplay -v /dev/vg00/lvol3
로 확인
# setboot
  alternate boot path 확인

 

12. Non Root Disk(Data Disk) Mirroring하는 방법

작업전에 먼저 HP MirrorDisk/UX Application Install한다.

# vi non_root_mirror.sh
  pvcreate -f /dev/rdsk/c1t3d0
  pvcreate -f /dev/rdsk/c1t4d0
  pvcreate -f /dev/rdsk/c1t5d0
  vgextend /dev/vg01 /dev/dsk/c1t3d0
  vgextend /dev/vg02 /dev/dsk/c1t4d0
  vgextend /dev/vg03 /dev/dsk/c1t5d0
  lvextend -m 1 /dev/vg01/lvol1 /dev/dsk/c1t3d0
  lvextend -m 1 /dev/vg01/lvol2 /dev/dsk/c1t3d0
  lvextend -m 1 /dev/vg01/lvol3 /dev/dsk/c1t3d0
  lvextend -m 1 /dev/vg02/lvol1 /dev/dsk/c1t4d0
  lvextend -m 1 /dev/vg02/lvol2 /dev/dsk/c1t4d0
  lvextend -m 1 /dev/vg03/lvol1 /dev/dsk/c1t5d0
  lvextend -m 1 /dev/vg03/lvol2 /dev/dsk/c1t5d0
:wq
# sh non_root_mirror.sh
# vgdisplay /dev/vg01
로 확인 
# stings /etc/lvmtab
으로 확인

 

13. Mirror Lvol Split하는 방법

# lvdisplay -v /dev/vg01/lvol1
# lvsplit -s backup /dev/vg01/lvol1  : -s option
을 안주면 lvol1b로 생김
# fsck -F vxfs /dev/vg01/lvol1backup
# mkdir /backup
# mount /dev/vg01/lvol1backup /backup  :
이렇게 해서 mirror lvol backup할수 있다.

 

14. Split Lvol을 하나로 Merge하는 방법

# umount /backup
# lvmerge /dev/vg01/lvol1backup /dev/vg01/lvol1  (#
순서에 주의)
 
또는 
# lvmerge /dev/vg01/lvol1b /dev/vg01/lvol1 : -s option
을 안줬을 경우

 

 

15. A 시스템의 Disk Export하여 B 시스템에 Import하는 방법

A 시스템에 /dev/vg01 에있는 /dev/dsk/c0t1d0 를 떼어낸다면..

# umount /dev/vg01/lvol1
# vgchange -a n /dev/vg01
# vgexport -v -m /tmp/vg.map /dev/vg01
# B
시스템으로 /tmp/vg.map ftp한다.
B
시스템에서 이 디스크를 붙여서 # ioscan -fnkCdisk

결과 /dev/dsk/c1t1d1으로 나타나고, 이 디스크를 /dev/vg02 로 만든다면 B 시스템에서 다음과 같이 작업한다.

# ioscan -fnkCdisk
# mkdir /dev/vg02
# mknod /dev/vg02/group c 64 0x020000
# vgimport -m /tmp/vg.map /dev/vg02 /dev/dsk/c1t1d1
# vgdisplay -v /dev/vg02
# vgcfgbackup /dev/vg02
# vi /etc/fstab
# mountall

 

 

16. Secondary Dump Device를 추가시키는 방법

Dump Disk는 반드시 root volume group에 포함되어야 하며 그러기 위해선
2GB
또는 4GB등의 single disk가 있어야 한다. 만약 dump용으로 사용할 device
/dev/dsk/c1t0d0
라고 한다면..

# pvcreate -f /dev/rdsk/c1t0d0
# vgextend /dev/vg00 /dev/dsk/c1t0d0
# lvcreate -L 2000 -C y -r n /dev/vg00 :(/dev/vg00/lvol4
가 만들어졌다면) Dump lvol은 반드시 contiguous 해야하며(-C y),bad block relocation Disable(-r n)되어야 한다.


# lvlnboot -v : 현재의 root,swap,dump정보확인

Boot Definitions for Volume Group /dev/vg00:
Physical Volumes belonging in Root Volume Group:
        /dev/dsk/c0t5d0 (4.5.0) -- Boot Disk
Boot: lvol1     on:     /dev/dsk/c0t5d0
Root: lvol3     on:     /dev/dsk/c0t5d0
Swap: lvol2     on:     /dev/dsk/c0t5d0
Dump: lvol2     on:     /dev/dsk/c0t5d0, 0

 

# lvlnboot -R : 현재의 root volume group configuration /etc/lvmconf backup.
# lvrmboot -r /dev/vg00  :
현재의 root volume group root,swap,dump정보를 삭제함.


# lvlnboot -R
# lvlnboot -b /dev/vg00/lvol1
# lvlnboot -r /dev/vg00/lvol3
# lvlnboot -s /dev/vg00/lvol2
# lvlnboot -d /dev/vg00/lvol2  : primary dump
영역 설정
# lvlnboot -d /dev/vg00/lvol4  : secondary dump
영역 설정
# lvlnboot -v
로 확인

 

 

17. MC/ServiceGuard 구축 시 두 시스템간에 Disk Share하는 방법

H/W적으로 Disk들이 양쪽시스템에 연결되어 있다.


ð A 시스템의 # ioscan -fnkCdisk결과 :

/dev/dsk/c0t1d0(4GB),/dev/dsk/c0t2d0(4GB)

 

ð B 시스템의 # ioscan -fnkCdisk결과 :

/dev/dsk/c1t1d0(4GB),/dev/dsk/c1t2d0(4GB)

 

여기서, A 시스템의 /dev/dsk/c0t1d0 B 시스템의 /dev/dsk/c1t1d0,
A
시스템의 /dev/dsk/c0t2d0 B 시스템의 /dev/dsk/c1t2d0
서로 같은 Disk 이라면..먼저 A 시스템에서 다음과 같이 작업을 실시한다.

# vi vgcreate.sh

pvcreate -f /dev/rdsk/c0t1d0
pvcreate -f /dev/rdsk/c0t2d0
mkdir /dev/vg01
mkdir /dev/vg02
mknod /dev/vg01/group c 64 0x010000
mknod /dev/vg02/group c 64 0x020000
vgcreate /dev/vg01 /dev/dsk/c0t1d0
vgcreate /dev/vg02 /dev/dsk/c0t2d0
lvcreate -L 4000 /dev/vg01 
lvcreate -L 4000 /dev/vg02
newfs -F vxfs /dev/vg01/rlvol1
newfs -F vxfs /dev/vg02/rlovl1
:wq

# mkdir /disk1
# mkdir /disk2
# vi /etc/fstab
# mountall
# vgexport -s -p -m /tmp/vg01.map /dev/vg01 : volume group
remove
# vgexport -s -p -m /tmp/vg02.map /dev/vg02 :
하지않고 map file을 받는다.

 

/tmp mapfile들을 B 시스템의 /tmp directory ftp한다.

 

B 시스템에서 다음과 같이 작업한다.

# mkdir /dev/vg01
# mkdir /dev/vg02
# mknod /dev/vg01/group c 64 0x010000
# mknod /dev/vg02/group c 64 0x020000
# vgimport -s -v -m /tmp/vg01.map /dev/vg01
# vgimport -s -v -m /tmp/vg02.map /dev/vg02

ð

만약 A system mount volume group B시스템에서 mount하려면..

 

A 시스템에서

# umount /dev/vg01/lvol1
# umount /dev/vg02/lvol1
# vgchange -a n /dev/vg01
# vgchange -a n /dev/vg02

 

B 시스템에서

# vgchange -a y /dev/vg01 : vgchange available하게 해주면 상대방시스템에
# vgchange -a y /dev/vg02 : mount
할 수 있다.
# mountall

 

18. Root Disk를 다른 New Disk로 변경하는 방법: pvmove명령 사용

/dev/vg00 /dev/dsk/c0t6d0 root disk /dev/dsk/c0t5d0로 바꾼다면..

# pvcreate -B -f /dev/rdsk/c0t5d0
# mkboot /dev/dsk/c0t5d0
# mkboot -a -hpux (10/0.5.0;0)/stand/vmunix- /dev/dsk/c0t5d0
# vgextend /dev/vg00 /dev/dsk/c0t5d0
# pvmove /dev/dsk/c0t6d0 /dev/dsk/c0t5d0
# vgreduce /dev/vg00 /dev/dsk/c0t6d0
# shutdown -r -y 0

ð

rebooting primary boot path 10/0.5.0으로 변경하고 maintenance
mode
booting한다.

ISL> hpux -lm

# vgchange -a y /dev/vg00
# lvlnboot -b /dev/vg00/lvol1
# lvlnboot -r /dev/vg00/lvol3
# lvlnboot -s /dev/vg00/lvol2
# lvlnboot -d /dev/vg00/lvol2
# lvlnboot -R
# lvlnboot -v
로 확인
# vgchange -a n /dev/vg00
# rm /etc/mnttab
# shutdown -r -y 0

 

 

19. Mirrored Disk를 분리하는 방법

/dev/vg01 /dev/dsk/c0t5d0 /dev/dsk/c0t6d0 두개의 disk mirror
되있으며 vg01에서 /dev/dsk/c0t6d0를 떼어내려 한다면..

# vgdisplay -v /dev/vg01 로 확인
# strings /etc/lvmtab
# lvreduce -m 0 /dev/vg01/lvol1 /dev/dsk/c0t6d0
# lvreduce -m 0 /dev/vg01/lvol2 /dev/dsk/c0t6d0
# vgreduce /dev/vg01 /dev/dsk/c0t6d0
# strings /etc/lvmtab
으로 확인
# lvdisplay -v /dev/vg01/lvol1
로 확인
# lvdisplay -v /dev/vg01/lvol2
로 확인

 

 

20. Mirrored Volume Group에서 Disk Fail이 발생한 Disk를 떼어내는 방법

/dev/vg01 /dev/dsk/c0t5d0 /dev/dsk/c0t6d0 두개의 disk mirror
되있으며 /dev/dsk/c0t6d0 disk fail이 발생하여 이 디스크를 떼어내려
한다면..

# lvdisplay -v -k /dev/vg01/lvol1  : -k option으로 fail이 발생한 disk pvkey(Phygical Volume Number in VG)값을 알아야한다.
여기서 pvkey값이 2라고 한다면..

# lvreduce -m 0 -k /dev/vg01/lvol1 2
# lvdisplay -v -k /dev/vg01/lvol2  : pvkey
값이 3이라면 한다면..
# lvreduce -m 0 -k /dev/vg01/lvo2 3
# vgdisplay -v /dev/vg01  :
여기서  -Cur PV- 의 값과 -Act PV-값을 확인한다.
# vgreduce -f /dev/vg01   :
만약 Cur PV값이 Act PV값보다 크면 -f option으로 queorum 정족수를 맞춰줘야 한다.
# mv /etc/lvmtab /etc/lvmtab.bak
# vgscan -v   : /etc/lvmtab file
을 다시 생성한다.
# lvlnboot -R
또는 # lvcfgbackup /dev/vg01

 

21. Root Volume Group Size를 확장하는 방법

: Pree PE가 남아있는경우 Install CD 를 사용하는 방법

# vgdisplay -v /dev/vg00  : 확인결과 현재의 root /dev/vg00/lvol3 
"Current LE"
450 이고 남아있는 "Pree PE" 50 이라면..

ISL> hpux -is  : single user mode booting
# cd /
# find . -xdev | cpio -ocvxB > /dev/rmt/0m
# cd /stand 
# find . -xdev | cpio -ocvxB > /dev/rmt/1m
또는
# mount /dev/vg01/lvo1 /root_backup
# cd /
# find . -xdev | cpio -pdumvx /root_backup 
# cd /stand
# find . -xdev | cpio -pdumvx /stand_backup : 
다른disk가 여유가 있다면..


또는


# fbackup -0uf /dev/rmt/0m -i / -i /stand
: /
/stand cpio,fbackup등을 사용하여 full backup 받는다.  
# shutdown -r -y 0
                 
# Install CD
를 사용하여 root size를 모두 확장하고 Install을 시작한뒤
 
5분뒤 swinstall mode가 진행되기 전에 ^C 를 쳐서 Shell mode로 나온

  . 그다음 backup 받은 / /stand cpio frecover data를 복구한

  .
 
# cd /
# cpio -icvxB * < /dev/rmt/0m  
# shutdown -r y 0

 

22. Root Volume Group를 확장하는 방법
: New Disk를 추가하여 /var를 분리하는 방법

root volume group /dev/vg00 device /dev/dsk/c0t6d0(2GB)이고 
여기에 /dev/dsk/c0t5d0(2GB) disk를 더 추가하여 /var 를 분리한다면..

ISL> hpux -is    : single user mode booting

# pvcreate -f /dev/rdsk/c0t5d0
# vgextend /dev/vg00 /dev/dsk/c0t5d0
# lvcreate -L 1000 -C y -r n /dev/vg00
# newfs -F vxfs /dev/vg00/rlvol4
# mkdir /new_var
# mount /dev/vg00/lvol4 /new_var
# cd /var
# find . -xdev | cpio -pdumvx /new_var
# vi /etc/fstab                : /dev/vg00/lvo4 /var
추가
# rm -rf /var
# lvlnboot -R
# shutdown -r -y 0


23. Mirroring을 하지 않고 Root Disk 대체본을 만드는 방법

# pvcreate -B -f /dev/rdsk/c0t5d0
# mkdir /dev/vg09
# mknod /dev/vg09/group c 64 0x090000
# vgcreate /dev/vg09 /dev/dsk/c0t5d0
# mkboot /dev/rdsk/c0t5d0
# mkboot -a "hpux (8/12.5.0;0)/stand/vmunix" /dev/rdsk/c0t5d0
# lvcreate -L 100 -C y -r n /dev/vg09
# lvcreate -L 1000 -C y -r n /dev/vg09
# lvcreate -L 2000 -C y -r n /dev/vg09
# newfs -F vxfs /dev/vg09/rlvol3
# lvlnboot -b /dev/vg09/lvol1
# lvlnboot -r /dev/vg09/lvol3
# lvlnboot -s /dev/vg09/lvol2
# lvlnboot -d /dev/vg09/lvol2
# lvlnboot -R
# mkdir /new_stand
# mkdir /new_root
# mount /dev/vg09/lvol1 /new_stand
# mount /dev/vg09/lvol3 /new_root
# cd /stand
# find . -xdev | cpio -pdumvx /new_stand
# cd /
# find . -xdev | cpio -pdumvx /new_root
# cd /new_stand
# config system
# cp -p vmunix_test vmunix
# umount /new_stand
# umount /new_root

 

24. Mirrored with good vgcfgbackup Root Volume Group vgcfgrestore로 복구하는 방법

# shutdown defective disk를 교체한 후  single user mode booting

ISL> hpux -is -lq

# pvcreate -B -f /dev/rdsk/c0t5d0
# vgcfgrestore -n /dev/vg00 /dev/rdsk/c0t5d0
# vgchange -a y /dev/vg00
# vgsync /dev/vg00
# shutdown -r -y 0

 

 

25. Mirrored with good vgcfgbackup Data Volume Group vgcfgrestore로 복구하는 방법

# shutdown defective disk를 교체한 후  single user mode booting

ISL> hpux -is

# pvcreate -f /dev/rdsk/c1t5d0
# vgcfgrestore -n /dev/vg02 /dev/rdsk/c1t5d0
# vgchange -a y /dev/vg02   :
이때 data disk mirror resync가 시작된다.
:
만약 resync가 되지 않으면 # vgsync /dev/vg02를 해줘야 한다.
# shutdown -r -y 0

 

 

26. Data volume Group /dev/vg02 remove된 경우 복구 방법

# mkdir /dev/vg02
# mknod /dev/vg02/group c 64  0x020000
# mv /etc/lvmtab /etc/lvmtab.old
# vgscan -v
# vgchange -a y /dev/vg02

 

 

27. Data Volume Group LVM Fault로 인해 복구가 안될 경우

만약 data volume group data는 남아 있으나 /etc/lvmconf vgcfgbackup file도 없고 정상적으로 data write할수 없을며 vgscan이나 vgimport로도 복구가 안될 경우..

이 경우에는 반드시 data volume group lvol size를 정확히 알고 있어야한다.
data volume group /dev/vg02이고 disk /dev/dsk/c0t7d0라고 하면..

# mkdir /dev/vg02
# mknod /dev/vg02/group c 64 0x020000
# pvcreate -f /dev/rdsk/c0t7d0
# vgcreate /dev/vg02 /dev/dsk/c0t7d0
# lvcreate -l 1000 /dev/vg02  :
이 경우 과거의 vg02 lvol size를 정확히 알고 있어야 한다. 만약 size를 모른다면 data가 깨질수도 있다

# lvcreate -l 2000 /dev/vg02 
# mount -a


이 경우 절대로 newfs를 해서는 안된다. 만약 newfs를 한다면 모든 data가 날아가 버릴것이다.

 

 

* 출처http://blog.naver.com/find999?Redirect=Log&logNo=150002208556

 

Posted by 익스퍼트
,

gnu tar

카테고리 없음 2012. 1. 9. 14:45

출처  http://www.ibm.com/developerworks/forums/thread.jspa?threadID=218349 

tar -tf MBOX.2011122202.tar.gz | grep pja97
--- ID로 검색하여 백업파일에서 목록 확인

tar -zxvf MBOX.2011122202.tar.gz ./MBOX/prugios.com/1/p/j/7/pja97
사용자의 디렉토리만 압축해제
--------------------

tar 사용법
게시: 2002/08/23 09:07:17 오후  
    답변
tar 사용법

tar의 플래그
c : 아카이브 생성
x : 아카이브로 부터 파일 추출
t : 목차 테이블 보기
v : 상세한 정보 출력

아카이브 만들기
$ cd /
$ tar -cf backup.tar home/
/home 의 하위디렉토리를 포함하여 backup.tar로 저장

아카이브 압축하기
$ gzip backup.tar
backup.tar.gz 이라는 파일을 생성하여 원래의 tar 아카이브보다 훨씬 더 작게 압축

압축된 아카이브 만들기
$ cd /
$ tar -cf - home/ | gzip > backup.tar.gz

(주의) v옵션 문제
$ tar -cvf - home | gzip > backup.tar.gz 을 하였을때는 tar에 따라서 v(verbose)
옵션을 stderr로 처리하지 않고 stdout으로 처리하여 문제를 일으키는 경우가 있다.
따라서 아카이브를 만들때는 v옵션을 빼는 것이 좋고, 아카이브를 풀때는 v 옵션과
관계가 없다.

아카이브 풀기
$ gunzip backup.tar.gz
$ tar -xf backup.tar

압축된 아카이브 풀기
$ zcat backup.tar.gz | tar -xf -

gzip이 내장된 GNU tar
GNU tar의 경우 gzip 처리를 내장하고 있다. 따라서 다음과 같이 처리할 수 있다.
$ cd /
$ tar -czf backup.tar.gz home/

$ tar -xzf backup.tar.gz

아카이브 내용보기
$ tar -tf backup.tar
아카이브를 풀기전에 항상 파일들의 이름을 먼저 검사한다. 만일 아카이브 속의
파일들이 현재 디렉토리에 풀리도록 묶여 있다면, 임시 디렉토리를 새로 하나
만들고, 그곳으로 이동(cd)하여 파일들을 풀어낸다.

일부 파일들만 뽑아내기
$ tar -xvf backup.tar filename
여기서 filename은 tar의 -t옵션으로 파일의 경로명까지 알아야 한다. filename과
./filename은 서로 다르게 처리되므로 정확한 파일명을 지정해야 한다.

$ tar -xvf backup.tar `tar -tf backup.tar|grep filename`
의 방법을 쓰는 것도 좋다.

(주의) 절대 경로 문제
절대경로를 갖는 디렉토리 또는 파일을 복구할 때 문제가 발생한다. tar는
아카이브에 지정되어 있는 경로명으로 파일을 복구하기 때문에, 파일이 복구될 곳을
변경할 수가 없다. 따라서 이미 존재하는 파일을 덮어쓰거나 퍼미션 문제가 발생할
수 있다.
GNU tar의 경우, 기본적으로 모든 절대 경로명을 상대경로 변경하여 아카이브를
만든다. --absolute-names 옵션을 사용하면 절대 경로로 아카이브를 만든다.
가장 좋은 방법은 아카이브를 만들때 디렉토리가 슬래시(/)나 틸드(~)로 시작하지
않도록 조심하는 것이다.
또 다른 방법으로는
$ cd /
$ tar -cf backup.tar .
를 줄여서

$ tar -cf backup.tar -C / .

-C 옵션은 아카이브를 생성하기 전에 /로 이동하도록 한다. 여러 개의 디렉토리들을
아카이브로 만들려면 -C옵션을 여러번 사용한다.
$ tar -cf backup.tar -C /home/smiletw . -C /home/woody ./test
아카이브에 추가하기
$ tar -uvf backup.tar home/
새로운 파일들만 업데이트 한다. 동일한 파일이 업데이트 되면 아카이브 마지막에 추가한다.
문혁찬
tar 사용법
게시: 2002/08/28 02:49:09 오전     답글: 이흥신의 게시물  
    답변

아카이브에 추가하기
$ tar -uvf backup.tar home/
새로운 파일들만 업데이트 한다. 동일한 파일이 업데이트 되면 아카이브 마지막에 추가한다.

라는 항목을 보고 궁금해서 질문 합니다.

혹시..위 처럼 tar를 사용 할 때... "동일한 파일이 업데이트 되면 아카이브 마지막에 추가한다." 라는 말씀은... 변경된 파일을 말씀하시는 것인가요??

예를들면... test.tar 에 이미 a.txt가 존재하고있고, 만약 a.txt를 수정한후 "tar -uvf test.tar" 하면 수정된 a.txt가 해당 test.tar에 적용된다는 의미입니까??

아카이브 마지막에 추가한다는 말씀의 의미가 조금 헤깔리네요...

Posted by 익스퍼트
,