다음과 같이 파티션 간에 공간이 분산된 서버가 있습니다.
GSSJMB02:~ # df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d0p5 25G 5.9G 18G 25% /
udev 3.9G 144K 3.9G 1% /dev
/dev/cciss/c0d0p9 64G 129M 61G 1% /apps
/dev/cciss/c0d0p1 244M 12M 219M 6% /boot
/dev/cciss/c0d0p10 16G 129M 15G 1% /home
/dev/cciss/c0d0p7 5.0G 618M 4.1G 13% /opt
/dev/cciss/c0d0p8 9.9G 228M 9.2G 3% /var
GSSJMB02:/gsn/sw 25G 5.9G 18G 25% /mnt/nfs/gsn/sw
GSSJMB02:/gsn/nodes 25G 5.9G 18G 25% /mnt/nfs/gsn/nodes
여기 파일 시스템에는 /dev/cciss/c0d0p5
필요한 것보다 공간이 적습니다. 그리고 파일 시스템에는 /dev/cciss/c0d0p9
사용할 수 없는 공간이 많습니다. /dev/cciss/c0d0p5
일부를 빼서 공간을 늘릴 수 있나요 /dev/cciss/c0d0p9
?
답변1
백업, 재파티셔닝, mkfs 및 복구 없이는 가능적어도c0d0p[56789](파티션 번호가 디스크 레이아웃에 따라 순차적으로 지정된다고 가정).
이 작업을 수행하기 위해 많은 노력을 기울이려면 lvm을 설치 및 구성하고 파티션 대신 논리 볼륨을 사용하는 데 조금 더 노력하십시오. 이렇게 하면 다음에 볼륨을 늘리거나 줄여야 할 때 더 많은 유연성을 얻을 수 있습니다. 파일 시스템(또는 두 번째 디스크를 추가하는 경우).
(또한 요즘 사람들이 왜 작은 디스크에 작은 파티션을 많이 만드는지 이해하기 어렵습니다. 예전에는 이것이 일반적인 관행이었지만 디스크도 작았습니다. 이제는 이전보다 더 많은 문제와 불편을 초래합니다. 소소한 혜택)
따라서 짧은 대답은 "아니요"입니다.
그러나 /apps(예: /apps/stuff)에 디렉터리를 만들고 +symlink 파일을 /에서 /apps/stuff로 이동할 수 있습니다. 예를 들어:
mkdir /apps/stuff
mv /usr/share/doc /apps/stuff
ln -s /apps/stuff/doc/ /usr/share/
부팅 시 필요한 파일이나 디렉터리(모두 /etc, /bin, /sbin 포함)를 이동하지 않는 한 모든 것이 계속 작동합니다(재부팅하거나 적어도 일부를 종료하고 재부팅해야 할 수도 있음). 이동한 파일은 프로세스에 의해 열린 상태로 유지됩니다.
그런데 소유자, 그룹 및 권한이 보존되는 한 일반적으로 파일을 복사하는 것이 mv보다 낫습니다. 예를 들어, "then"이라는 오래된 도구를 사용 cp -a
하거나 파일을 복사할 때 해당 파일을 삭제하고(또는 일시적으로 방해가 되지 않는 위치로 이동) 심볼릭 링크를 만듭니다. 완료되면 모든 것이 제대로 작동하는지 테스트하십시오. 그렇다면 루트 파일 시스템에서 원본 파일을 삭제하십시오. 예를 들어rsync
cd /path/to/src ; tar cf - . | (cd /path/to/dest ; tar xf -)
mkdir /apps/stuff
rsync -ax /usr/share/doc /apps/stuff
mv /usr/share/doc /usr/share/doc.bak
ln -s /apps/stuff/doc/ /usr/share
# do your testing now
rm -rf /usr/share/doc.bak
여기 rsync에서 소스 매개변수의 후행 /를 유지하는 것이 중요합니다(즉, /usr/share/doc
대신 사용 /usr/share/doc/
). 그렇지 않으면 rsync는 /usr/share/doc/의 모든 내용을 /apps/ 대신 /apps/stuff로 복사한다고 생각할 것입니다. 사물/문서