/var 폴더를 새 파티션으로 이동하려고 했습니다. 저는 Debian 10.7을 사용하고 있고 8GB 프로세서를 가지고 있어서 공간을 절약하고 싶습니다. 여러 가지 방법을 시도했지만 일부 데이터가 항상 사라지는 것 같습니다. 내가 시도한 것은 다음과 같습니다.
- 새 파티션 /dev/sda7 만들기
- /etc/fstab의 /mnt/newvar에 /dev/sda7을 마운트합니다.
- 단일 사용자 모드로 부팅
- 마운트/-rw -o 다시 마운트
- cp -arpPv /var/* /mnt/newvar(/mnt/newvar 폴더를 확인했을 때 /var 폴더와 크기가 동일했기 때문에 복사본이 제대로 작동하고 모든 폴더가 거기에 있는 것 같았습니다)
- mv /var /var.old
- mkdir /var
- /etc/fstab을 편집하고 /var에 /dev/sda7을 마운트합니다.
- 시스템을 다시 시작하세요
시스템 부팅 시 /var에 있는 여러 폴더가 보이지 않지만, 복구 USB로 부팅하면 거기에서 /var에 있는 폴더를 모두 볼 수 있습니다. /mnt/newvar 폴더를 삭제할 수 있나요? 그리고 /var.old 폴더? 이렇게 하면 볼 수 없는 폴더/파일이 영구적으로 손실되는 것 같습니다. 시스템의 나머지 부분을 읽기 전용으로 만들고 공간을 절약하기 위해 이 폴더를 새 파티션으로 옮기고 싶습니다. 이전 폴더를 삭제할 수 없는 경우 다른 파티션을 사용해도 큰 도움이 되지 않습니다. 일부 폴더가 표시되지 않는 이유와 영구 데이터 손실을 방지하는 방법을 알려줄 수 있는 사람이 있습니까?
답변1
에서 심볼릭 링크를 확인할 수 있나요 /var
? 어떤 경우에는 이러한 링크의 대상이 특정 디렉터리 경로가 아니라 상대 경로이기 때문입니다.
예를 들어 /var/run/
를 가리키는 경우 /run/
이는 의 /run
디렉토리 이지만 /
링크 대상 ../run/
은 링크의 상위 디렉토리에 있는 디렉토리이고 run
상위 디렉토리는 그대로 유지됩니다 root
.
/var/
그러나 이는 또한 에 복사하면 /mnt/newvar/
시스템이 링크가 가리키는 디렉토리를 발견할 때 이름이 지정된 상위 디렉토리를 찾게 된다는 의미이기도 합니다 run
.newvar/
/mnt
../run/
즉, 복사와 관련된 모든 것이 /var
이상한 동작을 유발할 수 있으므로 내 솔루션을 제안합니다. /var
설치할 때 원하는 파티션에 직접 설치하십시오. 결과적으로 /etc/fstab
다음과 같이 보일 수 있습니다.
UUID=xxx /var ext4 defaults 0 2
xxx는 원하는 파티션의 UUID이며, 명령을 사용하여 검색할 수 있습니다 blkid
.
답변2
이 /var
디렉토리에는 여러 기호 링크가 포함되어 있습니다.
/var/lock/
->/run/lock/
/var/run/
->/run/
cp
명령이 심볼릭 링크를 복사하는 것 같지 않습니다 .
어쩌면 다시 만들어야 할까요?
며칠 동안 문제 없이 작동할 때까지는 이전 /var 데이터를 삭제하지 않을 것입니다.