sysinstall에서 Fdisk Label이 실패할

Posted by : admin at 1 월 30th, 2009

[w]를 눌러 다음과 같은 메시지가 표시 버리고 업데이 트되지 않는다
 You've already written out your changes - if you wish to overwrite them, you'll have to restart sysinstall first.
 
이미 변화가 기록됩니다. 만일 이것을 무시하려면 먼저 sysinstall를 다시 시작해야합니다.
라는 것 때문에 sysinstall을 다시 시작합니다.
LiveFS CD에서 Fixit 모드에서 사용하는 경우에는 시스템을 다시 시작해야합니다.

엉 탑재할 수 없다
sysinstall에서 Fdisk Label 메뉴를 실행하면 슬라이스 파티션을 만들 수없고, 마운트 위치를 자동으로 마운트됩니다.
Fixit 모드에서 마운트 해제하려고하면 다음과 같은 오류 메시지가 나타날 수있습니다.
 Fixit# umount /mnt
umount: umount of /mnt failed: Device busy
 
다음을 확인하십시오.
현재 디렉토리가 안 마운트하려고하는 디렉토리가 아니다?
 Fixit# pwd
/mnt
 
이 경우에는 다른 디렉토리로 이동합니다.
 Fixit# cd /
 

엉 마운트하려고하는 디렉토리에 다른 탑재되지 않은?
 Fixit# ls /mnt
.snap/  dev/    home/   usr/    var/
 
이 경우에는 다음과 같은 순서로 마운트 해제합니다.
 Fixit# umount /mnt/var
Fixit# umount /mnt/usr
Fixit# umount /mnt/home
Fixit# umount /mnt/dev
Fixit# umount /mnt
 

何だか변
다음 단계를 끝내고보십시오.
  1. sysinstall을 종료 (LiveFS CD로 부팅하는 경우에는 Fixit 모드로 부팅)하여 만든 파티션이 마운트되어 있지 않으면, 전체 엉 탑재합니다.
     Fixit# ls /mnt
    .snap/  dev/    home/   usr/    var/
     
     Fixit# cd /
    Fixit# umount /mnt/var
    Fixit# umount /mnt/usr
    Fixit# umount /mnt/home
    Fixit# umount /mnt/dev
    Fixit# umount /mnt
     

  2. 스왑을 확인합니다.
     Fixit# swapinfo
    Device          1K-blocks      Used     Avail Capacity
     /dev/ad0s1b        1048576         0   1048576     0%
     
    장치 이름이 표시되는 경우에는 스왑 파티션을 사용하고있는 상황이므로 중지합니다.
     Fixit# swapoff  /dev/ad0s1b 
     
    (밑줄 부분은 swapinfo에서 지정한 장치 이름)

  3. sysinstall을 시작 (LiveFS CD로 부팅하는 경우에는 다시 시작).

Filed under 환경 설정 |

1 Comment»

백업 및 복원 (dump & restore)

Posted by : admin at 1 월 29th, 2009

FreeBSD 7.1에서 확인하는 확실한 백업 절차를 제공합니다.
특히 중요시하는 것은 다음과 같은 것입니다.
  • 백업은 짧은 시간에 수 있어야한다 확실한 백업은 신구루유자모도해야 공백 시간을 최대한 단축해야하기 때문입니다.
  • 백업은 쉽게 할 수 있어야한다 귀찮은 작업이 계속되지 않습니다.
  • 복원은 단계별로おこなえ경우, 다른 사람 (몇 달 후 자신도 포함)도 반드시 가능해야한다이 상황이되면 반드시 이해할 수있습니다.
나는 FreeBSD4.8 시대에서 서버를 세우고 있지만, 당시는 테이프 장치에 가고 있었다 백업도 최근 HDD에 끝내고 것이 좋다는 견해입니다.
테이프에 백업은 시간이 걸리는 데다, 경험상의 미디어의 신뢰성도 얇고 무엇보다 용량이 큰 HDD를 매일 백업은 테이프 매체의 수명을 생각하면 엄청난 테이프가 필요하다, 현실주의 는 분실되어 가고있습니다.
과거에 한 번, RAID5 구성 HDD가 2 개 동시에 충돌을했을 때, 백업은 몇 달 전에 무슨 ... 사태를 일으키는 원인이되었다 것도 있고, 매일 백업을 취할 수 있도록하는 최선의 방법을 생각하고있습니다 그러나 현재는이 방법을 침착하게합니다.

백업 (dump)

백업 원본이되는 서버는 다음과 같은 상태입니다.
 ns# df
Filesystem  1K-blocks    Used   Avail Capacity  Mounted on
/dev/ad0s1a   1012974  153114  778824    16%    /
devfs               1       1       0   100%    /dev
/dev/ad0s1f   2025860    9122 1854570     0%    /home
/dev/ad0s1d   6090094 2420298 3182590    43%    /usr
/dev/ad0s1e   1012974   34662  897276     4%    /var
 

백업 데이터를 저장하는 장치를 탑재합니다

USB 메모리도 SCSI 하드 디스크도 가능하지만, 이번에는 IDE - HDD를 기본 - slave를 메우고있습니다.
연결하려는 장비의 장치 이름을 dmesg에서 확인합니다.
 ns# dmesg
.....
ad0: 11264MB <VMware Virtual IDE Hard Drive 00000001> at ata0-master UDMA33
ad1: 13312MB <VMware Virtual IDE Hard Drive 00000001> at ata0-slave UDMA33
.....
 
스크롤이 빠르고 보는 것이다! 경우에는
 ns# dmesg|more
 
로, [j] 또는 [↓]에서 아래로 스크롤 'k'또는 '↑'에서 위로 이동합니다.
[q]로 표시가 종료됩니다. (자세한 내용은 man more)

백업 대상을 초기화 탑재합니다

처음 연결하는 장치의 경우에만 필요한 작업입니다.
2 회째 이후는 필요하지 않습니다.
 ns# sysinstall
 
sysinstall을 사용하는 것은 아주 오랜만에 옛 기억을 의지하고
 ns# /stand/sysinstall
 
이라고 했더니, 다음과 같은 오류가되었습니다.
 /stand/sysinstall: Command not found.
 

 ns# which sysinstall
/usr/sbin/sysinstall
 
과 최근의 FreeBSD에서는되고있는 것 같습니다.
보통 / usr / sbin에 경로를 통해서해야하므로 sysinstall뿐만 좋다는 뜻입니다.

[Configure]를 선택하고 [Enter]를 누릅니다.


[Fdisk를 선택하고 [Enter]를 누릅니다.


대상 장치를 선택하고 [Enter]를 누릅니다. (이번에는 ad1)


[c]를 눌러 [Enter]를 누릅니다.


[165] 상태에서 [Enter]를 누릅니다.


[w]를 누릅니다.
확인 대화 상자가 나타나면 Yes를 선택하고 [Enter]를 누릅니다.


[None]을 선택하고 [Enter]를 누릅니다.


[q]를 누릅니다.


[Cancel]을 선택하고 [Enter]를 누릅니다.


[Label]을 선택하고 [Enter]를 누릅니다.


[c]를 눌러 [Enter]를 누릅니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력합니다. (이번에는 / backup)
자동으로 디렉토리를 만들어 마운트됩니다.


[w]를 누릅니다.


Yes를 선택하고 [Enter]를 누릅니다.


[q]를 눌러 메뉴로 돌아간 다음 Cancel을 누릅니다.


[Exit] 또는 [Cancel을 누릅니다.


[Exit Install을 선택하고 [Enter]를 누릅니다.

dump 실행

다음 파티션을 각각 지원합니다.
 Filesystem  1K-blocks    Used   Avail Capacity  Mounted on
/dev/ad0s1a   1012974  153114  778824    16%    /           <=== /backup/root.dump
devfs               1       1       0   100%    /dev        <=== バックアップ不要
/dev/ad0s1f   2025860    9122 1854570     0%    /home       <=== /backup/home.dump
/dev/ad0s1d   6090094 2420298 3182590    43%    /usr        <=== /backup/usr.dump
/dev/ad0s1e   1012974   34662  897276     4%    /var        <=== /backup/var.dump
 

 ns# dump -0uaLC 32 -f /backup/root.dump / 
 

옵션 설명

0 단뿌레베루 0 (전체 백업)
u 덤프가 성공하면, / etc / dumpdates 파일을 업데이 트합니다.
a 미디어 종료를 감지합니다. (테이프 잖아 때문에 불필요 할지도 ...)
L FreeBSD5.0에서 탑재된 스냅샷 기능을 사용합니다.
이 기능을 사용하면 신구루유자모도에 떨어뜨릴 필요가없습니다.
C 캐시 크기를 8 ~ 32 (단위 : MB) 사이에서 지정하여 성능을 극적으로 향상됩니다.
그러나 L 옵션을 지정한 경우에는, C 옵션을 해제하는 것이 좋을 것입니다.
(상세 내용보기)
f 백업 대상 파일을 지정합니다.
마찬가지로 다른 3 개나합니다. (용량이 많은 /usr 등 다소 시간이 걸립니다)
 ns# dump -0uaLC 32 -f /backup/var.dump /var 
 
 ns# dump -0uaLC 32 -f /backup/usr.dump /usr 
 
 ns# dump -0uaLC 32 -f /backup/home.dump /home 
 
이상으로 지원이 완료됩니다.

 ns# ls -al /backup
total 2662822
drwxr-xr-x   3 root  wheel            512 Jan 27 17:26 .
drwxr-xr-x  23 root  wheel            512 Jan 27 17:02 ..
drwxrwxr-x   2 root  operator         512 Jan 27 17:02 .snap
-rw-r--r--   1 root  wheel        9646080 Jan 27 17:26 home.dump
-rw-r--r--   1 root  wheel      155197440 Jan 27 17:16 root.dump
-rw-r--r--   1 root  wheel     2524764160 Jan 27 17:36 usr.dump
-rw-r--r--   1 root  wheel       35655680 Jan 27 17:26 var.dump
 
또한 보안을 강화하려면, 만든 dump 파일은 임시 저장 파일 대우로, 다른 미디어에 복사하면 좋습니다.

정작! 는 순간을 위해, 지금 중에 ftp 사이트에서 같은 버전의 livefs.iso를 다운로드하여 LiveFS CD를 만들어 둡시다.
그리고 "FreeBSD XX 긴급 부트 디스크"라고 적어 서버 가까이 (눈에 띄는 위치)에 두는 것이 좋습니다.

복원 (restore)

다음과 같은 구성으로 확인했습니다.
  • 새로운 서버 (요체 부팅 디스크에 OS가 설치되지 않은 상태 서버)
  • 위 서버의 기본 - slave에 백업 데이터가 들어있는 IDE - HDD를 연결
시작 HDD ad0
백업 데이터를 저장하는 HDD ad1
그밖에 필요한 LiveFS CD

LiveFS CD로 부팅

먼저 LiveFS CD를 넣고 서버를 시작합니다.
(CD로 부팅하지 않는 경우에는 침착하게 BIOS를 검토 해보자)

일본어를 잘하는 [110 Japan] 선택하고 [Enter]를 누릅니다.
[PageUp] 7 회, [↓] 4 회하면 이르)

[Japanese 106 keymap] 선택되어있을 것입니다 때문에 그대로 [Enter]를 누릅니다.


시작 HDD 초기화 (슬라이스 파티션)

[Configure]를 선택하고 [Enter]를 누릅니다.


[Fdisk를 선택하고 [Enter]를 누릅니다.


부팅 장치를 선택하고 [Enter]를 누릅니다. (여기서는 AD0)
결코 백업 데이터를 저장하는 장치를 지정하지 마십시오.


[c]를 눌러 표시된 숫자 그대로 [Enter]를 누릅니다.


[165] 상태에서 [Enter]를 누릅니다.


[q]를 누릅니다.


[Standard]을 선택하고 [Enter]를 누릅니다.


Cancel을 눌러 메뉴로 돌아갑니다.


[Label]을 선택하고 [Enter]를 누릅니다.


[c]를 누릅니다.


루트 (/) 파티션에 할당할 용량을 지정합니다. (여기에서는 1GB)
이전 서버 (백업 원)보다 적은 경우 문제가 발생할 수있습니다. dd과는 다른 많은 분에는 문제가없습니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력하고 (/) [Enter]를 누릅니다.


마찬가지로, [c]를 눌러 스왑 파티션을 설정합니다.
이것은 새로운 서버에 탑재되는 메모리 용량을 2 배 정도가 좋다. (여기에서는 1GB)


[Swap을 선택하고 [Enter]를 누릅니다.


마찬가지로, [c]를 눌러 /var 할당할 용량을 지정합니다. (여기에서는 1GB)
이전 서버 (백업 원)보다 적은 경우 문제가 발생할 수있습니다. dd과는 다른 많은 분에는 문제가없습니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력하고 /var [Enter]를 누릅니다.


마찬가지로, [c]를 눌러 /usr 할당할 용량을 지정합니다. (여기서는 4GB)
이전 서버 (백업 원)보다 적은 경우 문제가 발생할 수있습니다. dd과는 다른 많은 분에는 문제가없습니다.
/ home 파티션들을 작성하지 구성 / usr에 나머지 모든 공간을 할당하려는 경우에는 용량을 지정하지 않고 표시된 숫자 그대로 [Enter]를 누릅니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력하고 /usr [Enter]를 누릅니다.


마찬가지로, [c]를 눌러 나머지 용량을 모두 /home 할당합니다.
표시된 숫자를 변경없이 [Enter]를 누릅니다.
/ home 파티션이 필요하지 않은 경우에는이 작업이 필요하지 않습니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력하고 /home [Enter]를 누릅니다.


이런 느낌입니다.
마음에 들지 않으면, 파티션을 선택하고 [d]를 누르면 삭제 할 수 있기 때문에, 설정하고 다시하세요.
낫 [w]를 누릅니다.


확인 대화 상자가 나타나면 Yes를 선택하고 [Enter]를 누릅니다.


[q]를 눌러 메뉴로 돌아간 다음 Cancel]을 선택하고 [Enter]를 누릅니다.


Fixt를 시작

[Fixit를 선택하고 [Enter]를 누릅니다.


[CDROM / DVD를 선택하고 [Enter]를 누릅니다.


Fixit가 시작됩니다.


장치에 방금 만든 파티션 (ad0s1a ~ ad0s1f)가 등록되어 있는지 확인합니다.
Fixit# ls /dev


방금 만든 파티션은 /mnt 아래에 배치됩니다.
 Fixit# ls /mnt
.snap/  dev/   home/   usr/   var/
 

백업 데이터가 들어있는 HDD를 탑재

백업 데이터가 들어있는 HDD를 탑재하기 위해 /mntbk 디렉터리를 만듭니다.
 Fixit# mkdir /mntbk
Fixit# _
 
이번에는 IDE - HDD를 Master - Slave 연결하고있어 "ad1s1"라는 장치 이름입니다.
ad1s1 c의 c 내용은 여기를 참조하십시오.
 Fixit# mount /dev/ad1s1c /mntbk
Fixit# _
 

restore 시작

ルート( / )をrestore
 Fixit# cd /mnt
Fixit# restore -rf /mntbk/root.dump
 

/varをrestore
 Fixit# cd /mnt/var
Fixit# restore -rf /mntbk/var.dump
 

/usrをrestore
 Fixit# cd /mnt/usr
Fixit# restore -rf /mntbk/usr.dump
 

/homeをrestore
 Fixit# cd /mnt/home
Fixit# restore -rf /mntbk/home.dump
 

대부분의 경우 대용량 usr 등을 restore 동안 다음과 같은 오류가 나타납니다.
 Fixit# cd /mnt/usr
Fixit# restore -rf /mntbk/usr.dump

/: write failed, filesystem is full
restore: /tmp//rstdir1233044785: cannot write directory database: No space left on device
Try making space in /tmp/, or set environment variable TMPDIR
to an alternate location with more disk space.
Fixit# _
 
이것은 restore 작업에 필요한 임시 파일을 용량 부족 때문에 발생합니다.
이러한 경우에는 다음과 같은 방법으로 TMP 디렉토리를 변경하고 다시 restore하십시오.
 Fixit# mkdir /mntbk/tmp
Fixit# TMPDIR=/mntbk/tmp
Fixit# export TMPDIR
 
/ mntbk는 백업 데이터가 들어있는 HDD 것입니다.
여기에서 TMP 디렉토리를 만들어 그곳을 이용한다는 뜻입니다.
이 작업 후 어떤 필요에せまら하고 / mntbk / tmp 디렉토리를 제거하면 거의 모든 명령을 수행할 수 없게됩니다.
이러한 경우에는 다음과 같이하여 TMP 디렉터리를 복원합니다.
 Fixit# TMPDIR=/tmp
Fixit# export TMPDIR
 

fstab 갱신

다시 작성 작업이 필요없는 경우에도 반드시 확인합시다.
파티션의 순서의 차이에 의해 시작되지 않는 사태에 빠져 2 일 동안 빠져 버렸습니다 ...

현재 탑재 상태를 확인합니다.
 Fixit# df
Filesystem      1K-blocks    Used   Avail Capacity  Mounted on
/dev/md0             4175    2449    1726    59%    /
devfs                   1       1       0   100%    /dev
/dev/ad0s1a       1012974  153114  778524    16%    /mnt
devfs                   1       1       0   100%    /mnt/dev
/mnt/dev/ad0s1f   8122034    9426 7462846     0%    /mnt/home
 /mnt/dev/ad0s1e   4058062 2434140 1299278    65%    /mnt/usr 
 /mnt/dev/ad0s1d   1012974   34750  897180     4%    /mnt/var 
/dev/acd0          226150  226150       0   100%    /dist
/dev/ad1s1c      13198878 2662822 9480146    22%    /mntbk
 

이어 fstab를 엽니다.
Fixit# vi /mnt/etc/fstab
 # Device          Mountpoint         FStype   Options         Dump     Pass#
/dev/ad0s1b       none               swap     sw              0        0
/dev/ad0s1a       /                  ufs      rw              1        1
/dev/ad0s1f       /home              ufs      rw              2        2
 /dev/ad0s1d       /usr                ufs      rw              2        2
 /dev/ad0s1e       /var                ufs      rw              2        2
/dev/acd0         /cdrom             cd9660   ro,noauto       0        0 

밑줄 부분의 차이에お気갖는 것일까요?
장치 이름 "ad0s1e"와 "ad0s1d"마운트 이름이 반전이 필요하다.
이러한 경우에는 "/ mnt / etc / fstab"을 편집하여 수정 저장합니다.

이상이 끝났습니다.
LiveFS CD를 빼고 다시 시작하면 상승합니다.

후처리

restore를 실행하면 각 파티션의 현재 디렉토리에 restoresymtable 파일이 만들어집니다.
이것은 증분 백업을 복원할 때해야 할 것입니다 때문에, restore 작업이 완료되면 삭제 해 둡시다.
 ns# ls /
.cshrc        boot          entropy          mnt             sys
.profile      cdrom         etc              proc            tmp
.snap         compat        home             rescue          usr
COPYRIGHT     dev           lib               restoresymtable  var
backup        disk2         libexec          root
bin           dist          media            sbin
 

 ns# rm /restoresymtable 
 ns# rm /var/restoresymtable 
 ns# rm /usr/restoresymtable 
 ns# rm /home/restoresymtable 

이럴 때는

복원된 서버를 시작하려고하면 다음 메시지에서 많은 시간 멈춘다.
 Configuring syscons: keymap blanktime
 
"Configuring syscons : keymap blanktime"라는 표시가 시간 초과 대기를 참조하십시오.

다음과 같은 메시지가 나오고 파티션 수 없다
 Unable to find device node for /dev/ad0s1b in /dev!
The creation of filesystems will be aborted.
 
Fdisk가 슬라이스 만든 후 [w]를 눌러 있지 않습니까?
Fdisk 메뉴에서 [w] 누르지 않고, [q]를 눌러 Label 설정이 끝난 뒤 마지막으로 Label 메뉴에서 [w]를 누릅니다.

sysinstall에서 Fdisk Label이 실패할
나도 검증 과정에서 여러 번 경험했습니다.
sysinstall에서 Fdisk Label이 실패할를 참조하십시오.

네트워크에 연결된 다른 서버로 원격 백업을 할
옛날 쓴 기사입니다. "테이프 드라이브에 백업 및 복원"여기를 참고하십시오.