/ var을 별도의 파티션에 저장하려면 어떻게해야합니까?


13

/var별도의 파티션에 저장하고 싶습니다 /. 이것을 설정하는 올바른 방법은 무엇입니까?

답변:


17

먼저 새 파티션을 준비하십시오 (예 : partedmkfs).

파티션이 / dev / sda5라고 가정하십시오.

새 파티션을 마운트하십시오.

mkdir /var2
mount /dev/sda5 /var2

현재 var를 동기화하십시오.

rsync -a /var/ /var2

/ etc / fstab에 항목 추가

/dev/sda5    /var    ext4    defaults      2 2

재부팅하십시오.

이전 / var로 돌아 가야 할 경우 fstab에서 항목을 주석 처리하십시오.


1
나는 이전에 공간을 복구하기 위해 몇 가지 정보를 추가 /var하는 라이브 CD에서 시작 설치된 시스템의 파티션을 마운트 /하고 rm -rf /var/*.
enzotib

1
좋은 지적. 또는 /현재 시스템이 실행되는 동안 (다시 부팅 한 후) 다른 위치에 마운트 할 수 있습니다 . 그럼 당신은 /var당신이 원하는 경우 이전에 얻을 수 있습니다 삭제
Aleksandr Levchuk

1
나는 그것들에 대해서도 궁금해했다. 첫 번째 1은 실제로는 고풍스럽고 효과가 없으며 두 번째는 부팅 중에 ext를 스캔 할 때 fsck의 순서를 제어합니다. 나는 더 이상 그들에게 관심을 기울이지 않습니다. 구문에 필요하므로 1 1 만 넣으십시오.
Aleksandr Levchuk

2
30 번 재부트 할 때 / var 앞에 / fsck를 스캔하도록 2 2를 넣어야합니다. 그렇지 않으면 / var가 실패하고 단일 사용자 셸에서 수동으로 수정하도록 요청하면 파일 시스템이 없습니다. 재미있는 것들.
Aleksandr Levchuk 3

2
fstab에서 UUID 사용을 권장하지 않습니까? 나는 사용하여 적절한 하나를 가지고 blkid -o list -s UUID,하지만 난 당신이 sudo를 실행할 필요가 있다고 생각
steevc

2

가상 서버에서 새 / var 파티션 구성

고용주의 호스팅 회사가 제공 한 새로운 가상 서버를 인수했을 때 루트 파일 시스템에 충분한 여유 공간이 없었습니다. 운 좋게도 LVM (Logical Volume Manager) 을 사용하여 가상 디스크를 하위 분할했으며 새 볼륨을 생성 할 수있는 충분한 여유 공간이있었습니다. 나는이 또 다른 논리 볼륨을 생성 var하고 home있는 루트 파일 시스템에서 일반 디렉토리 있었다. 가상 서버 공급자는 단일 사용자 모드에서 서버에 액세스 할 수있는 KVM과 유사한 인터페이스를 제공하지 않았기 때문에 Aleksander에서 설명한 것과 매우 유사한 방법을 사용했습니다 (이 답변에는 디스크 공간 복구에 대한 추가 정보가 포함되어 있음) LVM 관련 명령에 추가).

LVM으로 새로운 / var 파일 시스템 만들기

var파일 시스템에 대한 논리 볼륨을 작성하고 (임시 디렉토리를 사용하여) 마운트 한 후 현재 /var파일 시스템에서 새 파일 시스템으로 파일을 복사하십시오 .

# Create a new 60GB logical volume in the `VolGroup00` group called `var`.
sudo lvcreate -L 60GB -n var VolGroup00
# Create an ext4 filesystem on this new `var` volume.
sudo mkfs.ext4 /dev/VolGroup00/var
# Mount this filesystem at a temporary mount-point.
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new

실행중인 프로세스는 파일을 /var열어 놓고 사용하기 때문에 디렉토리 트리를 단순히 새로운 파일 시스템으로 옮길 수는 없습니다. 파일 속성과 확장 속성을 유지하면서 -r현재 /var파티션에서 새 파일 시스템으로 파일을 재귀 적으로 복사 ( ) 합니다 ( -a, --archive옵션). 신중한 사용자는 복사하기 전에 먼저 현재 볼륨 의 LVM 스냅 샷 을 생성 할 수 있지만이 질문에 대한 주제를 너무 많이 벗어납니다.

sudo cp -ra /var/ /var.new/

또는, 파일로 복사 할 수 있습니다 rsync그것으로, -a, --archive타임 스탬프, 소유권, 모드 등을 보존하는 옵션과 -X, --xattrs같은 AppArmor의 및 SELinux를 사용하는 보안 레이블과 같은 확장 된 특성을 보존하는 옵션 :

sudo rsync -raX /var/ /var.new/

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

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

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

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

임시 마운트 포인트 제거

머신이 다시 시작되면 새 파일 시스템이 마운트되어 /var임시 마운트 포인트를 안전하게 제거 할 수 있습니다.

sudo rmdir /var.new

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

이전 /var파일은 여전히 ​​루트 파티션의 공간을 차지하지만 다른 파일 시스템이 마운트되어있는 동안 쉽게 액세스 할 수 없습니다 /var( /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/

관련된 옵션에 대한 좋은 설명. 그러나, 당신은 사용 lvcreate하고 mkfs.ext4있습니다 또는 왜을 사용하는 것을 설명없이. 어쩌면 대답의 주요 주제가 아니기 때문에 새 파티션을 만들기위한 것입니다.
PhoneixS

의견 @PhoneixS에 감사드립니다.보다 명확하고 상황에 맞는 추가 정보를 제공하기 위해 답변을 편집했습니다.
Anthony Geoghegan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.