/ var을 다른 기존 파티션으로 옮기는 방법은 무엇입니까?


16

/ var을 포함하고 너무 작은 / 파티션이 있습니다. 충분한 공간이있는 다른 기존 파티션이 있습니다.

내 df는 다음과 같습니다.

File system          Size. Occ. Avai. %Ful. Monté sur
/dev/sda1             5,0G  4,5G  289M  95% /
tmpfs                 242M     0  242M   0% /lib/init/rw
udev                   10M  2,7M  7,4M  27% /dev
tmpfs                 242M     0  242M   0% /dev/shm
/dev/sda2              15G  406M   14G   3% /home

/ var 폴더를 sda1에서 sda2로 어떻게 이동합니까?

답변:


19

단일 사용자 모드로 들어가서 쓰기 프로세스 /var가 중지 되었는지 확인하십시오 . (로 확인 lsof | grep /var)

  • mkdir -p /home/var
  • rsync -va /var /home/var
  • mv /var /var.old# /var.old공간을 되 찾을 때 제거 할 수 있습니다
  • mkdir -p /var
  • mount -o bind /home/var /var
  • /etc/fstab바인드 마운트를 영구적으로 만들 려면 을 업데이트하십시오 .

/etc/fstab

 /home/var /var        none    bind

고마워! 단일 사용자 모드로 들어가려면 어떻게해야합니까? 'var'폴더가 / home에 유지됩니까?
Jérémie

/home/var이 방법으로 문제를 해결하면 항상 디렉토리가 있습니다. 재부팅하고 Boot 메뉴에서 단일 사용자 모드를 선택하여 단일 사용자 모드로 전환 할 수있는 한 가지 방법입니다.
Zoredache

이것이 항상 잘 작동하는지 확실하지 않습니다. 최신 버전 (지저분한)을 사용하는 경우 / run 파일 시스템이 있으므로 정상일 수 있습니다. OTOH : 부트 프로세스 초기에 바인드 마운트되기 전에 파일을 / var에서 열 수 있습니다.
cstamas 2009 년

1
@cstamas, 별도의 파일 시스템에 / var이있는 것이 지원 되며 항상 그렇습니다 . 별도의 / var를 갖는 것은 FHS와 공식 데비안 문서에서 좋은 것으로 제안됩니다.
Zoredache

좋아, 네가 옳은 것 같아 바인드 마운트 로이 작업을 수행하는 것은 나에게 이상했습니다.
cstamas

5

다음을 사용할 수도 있습니다.

 mkdir /home/var
 <move contents of /var to /home/var -- however you want; EX: mv /var/* /home/var>
 mv /var /var.old
 ln -s /home/var /var

이것은 fstab을 사용하고 마운트하는 것보다 훨씬 쉬워 보입니다.


1
왜 누군가가 이것을 다운 투표했는지 모르겠습니다. 이것은 완벽하게 작동합니다. sym-link가 제대로 작동해야합니다. 나는 다른 것들을 위해 바인드 마운트를 사용하기 때문에 먼저 그것들을 생각하는 경향이 있습니다.
Zoredache

1
이것에 추가하면 안전하지는 않지만 실제로 작동합니다. 최근에 프로덕션에 배치하기 전에 머신에서이 작업을 수행했습니다. 사용중인 컴퓨터이거나 많은 프로세스가 실행중인 경우주의를 기울일 수 있습니다. 필자의 경우 Tomcat 만 실행하는 새로운 서버였습니다.
AJ Brown

1
심볼릭 링크 / var는 작동하지만 그렇게하는 대신 / etc / fstab에 항목을 넣어서 어떤 파티션 / 볼륨에 무엇을 넣었는지, 왜 (어떻게 주석을 추가 할 수 있는지) 기억합니다. 이 방법은 하드웨어에서 무언가를 변경해야 할 경우 구성에서 변경해야 할 사항을 더 잘 이해할 수 있습니다.
gerlos

1
이것이 어떻게 작동하는지 알 수 없습니다. 나는 그것이 작동하기를 원하지만 init / var를 사용하는 것과 같은 기본적인 것들, 그렇지 않습니까?
Sue Spence

1

/var단일 사용자 모드로 변경하지 않고 이동

내 고용주의 호스팅 회사가 나를 위해 프로비저닝 있었다 새로운 가상 서버를 인수 때, 나는이 또 다른 논리 볼륨을 생성 var하고 home이는 루트 파티션에서 일반 디렉토리 있었다. 가상 서버 공급자는 단일 사용자 모드에서 서버에 액세스 할 수있는 KVM과 유사한 인터페이스를 제공하지 않았으므로 위의 답변은 설정에 적용 할 수 없습니다. 이 답변이 비슷한 상황에있는 다른 사람들에게 유용하기를 바랍니다 (LVM 세부 정보를 유지했지만 새로운 파일 시스템이 논리 볼륨 또는 디스크 파티션에서 생성되는지 여부와는 관련이 없으므로 생략 할 수 있습니다).

/varLVM 으로 새로운 파일 시스템 생성 및 사용

var볼륨 의 파일 시스템을 작성하고 (임시 디렉토리를 사용하여) 마운트 한 후 현재 /var파일 시스템에서 새 파일 시스템으로 파일을 복사하십시오 . 로 파일을 복사 할 때 옵션을 rsync사용하여 -a, --archive타임 스탬프, 소유권, 모드 등 -X, --xattrs을 유지하고 AppArmor 및 SELinux에서 사용하는 보안 레이블과 같은 확장 된 속성을 유지하십시오.

sudo lvcreate -L 60GB -n var VolGroup00
sudo mkfs.ext4 /dev/VolGroup00/var
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new
sudo rsync -raX /var/ /var.new/

파일 시스템 테이블 업데이트

/var에 다음 줄을 추가하여 새 마운트 지점으로 사용할 새 파일 시스템을 구성하십시오 /etc/fstab. 참고 0패스 번호 (마지막 필드)로 사용되는 파일 시스템이 자동으로 (체크되지 않도록 fsck재부팅의 특정 숫자 후) (I은 단일 사용자 모드로 서버에 로그인 할 액세스했습니다 없음).

/dev/mapper/VolGroup00-var    /var    ext4  defaults  0 0

단일 사용자 모드로 변경할 수 없으므로 컴퓨터를 재부팅하여이 새 볼륨을로 사용하십시오 /var.

루트 파일 시스템에서 디스크 공간 복구

머신이 다시 시작된 후 다음 단계를 수행하여 임시 디렉토리를 정리 /var하고 루트 파일 시스템에서 이전 파일을 제거하십시오 .

  1. 임시 마운트 포인트를 제거하십시오.

    sudo rmdir /var.new
    
  2. /var루트 파일 시스템 의 이전 디렉토리에 있는 파일에 대한 대체 경로를 작성하려면 새 마운트 지점을 작성하십시오 ( 디렉토리에 /var마운트 된 새 파일 시스템에 의해 현재 "마스크"되어 있음 ).

    sudo mkdir /old-root
    sudo mount /dev/mapper/VolGroup00-root /old-root/
    sudo rm -rf /old-root/var/*
    sudo umount /old-root/
    sudo rmdir /old-root/
    
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.