나는 Linux에서의 마운트/마운트 해제에 대해 그다지 깊이 생각하지 않으므로 내 질문은 다음과 같습니다.
나는 df -h
다음과 같은 개요를 얻습니다.
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 323M 306M 0 100% /
tmpfs 502M 0 502M 0% /lib/init/rw
udev 497M 116K 497M 1% /dev
tmpfs 502M 0 502M 0% /dev/shm
/dev/sda9 47G 181M 44G 1% /home
/dev/sda8 368M 12M 338M 4% /tmp
/dev/sda5 8,3G 1,1G 6,8G 14% /usr
/dev/sda6 2,8G 433M 2,2G 17% /var
나는 이 기계를 모든 웹 관련 자료가 있는 웹 서버로 사용하고 있습니다 /srv/
. 왜냐하면 이것은 /
내 디스크 공간이 부족하기 때문입니다. 나는 /home
44G의 사용 가능한 네트워크 공간이 있다는 것을 알았습니다. 그것은 나에게 완전히 헛소리입니다. 그래서 나는 /home
그것을 자체 파티션(일부가 아닌 /
) 으로 사용하지 않고 /srv
자체 파티션으로 사용하고 소비된 공간을 캡처하고 싶습니다 /home
. 따라서 나중에는 df -h
다음과 같아야 합니다 ( /home
로 대체됨 /srv
).
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 323M 306M 0 100% /
tmpfs 502M 0 502M 0% /lib/init/rw
udev 497M 116K 497M 1% /dev
tmpfs 502M 0 502M 0% /dev/shm
/dev/sda9 47G 181M 44G 1% /srv
/dev/sda8 368M 12M 338M 4% /tmp
/dev/sda5 8,3G 1,1G 6,8G 14% /usr
/dev/sda6 2,8G 433M 2,2G 17% /var
여기까지 오려면 무엇이 필요합니까?
답변1
에는 충분한 공간이 있으므로 모든 내용을 으로 /home
이동 한 다음 (선택적으로) 해당 내용을 루트 파티션으로 이동합니다./srv
/home
/home
몇 분의 가동 중지 시간이 문제가 되지 않는다면 가장 간단한 해결책은 /srv
더 큰 파티션으로 이동하여 이를 심볼릭 링크하는 것입니다.
mv /srv /home
ln -s /home/srv /
정말로 루트 파티션으로 이동하려면 /home
이름을 몇 번 바꿔야 합니다. /home/srv
또는이라는 디렉토리 가 없다고 가정합니다 /srv/srv
.
mv /srv home
mkdir /srv
mount --move /home /srv
mv /srv/acme … /home/
mv /srv/srv/* /srv
rmdir /srv/srv
마지막으로 (symlink 방법을 사용하지 않는 경우) /etc/fstab
마운트 지점을 변경하도록 편집합니다. 로 시작하는 줄에서 로 /dev/sda9 /home
바꿉니다 ./home
/srv
답변2
어떤 작업을 수행하기 전에 현재 /home이 차지하는 180MB의 데이터를 저장할 위치를 찾아야 합니다. 현재 /dev/sda9를 2G /home
및 42 로 다시 파티션하는 것이 좋습니다 /srv
.
다음으로 조금 까다로워져야 합니다. 이 모든 작업은 단일 사용자 모드에서 수행하는 것이 가장 좋습니다. 따라서 루트만 로그인할 수 있고 /home
이동할 때 다른 사람이 액세스하려고 하는 문제가 없습니다.
/var에는 충분한 공간이 있으므로 이를 임시 보관 공간으로 사용합니다.
mkdir /var/tmp/oldhome
cd /home
`tar -cvf - ./ | ( cd /var/tmp/oldhome && tar -xvf - )
이제 어딘가에 백업했으므로 2기가 와 42기가 로 /home
다시 분할했습니다./dev/sda9
/dev/sda9
/dev/sda10
다시 파티션을 나누고 새 파일 시스템을 생성한 후에(이 작업을 수행하는 방법을 알고 있다고 가정합니다) /etc/fstab
.
어딘가에 다음과 같은 줄이 보일 것입니다.
/dev/sda9 /home ext3 defaults 0 2
/dev/sda9
두 파티션 중 더 작은 파티션을 만들었다고 가정하면 행을 변경하지 않고 추가하기만 하면 됩니다.
/dev/sda10 /srv ext3 defaults 0 2
바로 아래.
이 줄을 추가한 후 다음을 입력하세요.
mount /home ; mount /srv
df -h
두 파티션이 모두 마운트되었는지 확인하십시오 .
그런 다음 /home의 데이터를 바꿉니다.
cd /var/tmp/oldhome
tar -cvf - ./ | ( cd /home && tar -xvf - )
다중 사용자 모드에서 시스템을 다시 시작하면 모든 것이 제대로 작동합니다.
답변3
빠르지만 좋지 않은 해결책으로, 덜 사용되는 디스크의 디렉토리를 아래 위치에 다시 마운트한 /srv
다음 거기로 일부 항목을 이동하여 /srv
적당한 공간을 확보할 수 있습니다.
에 --bind
대해 읽어 보세요 . 모든 최신 Linux에서 실행됩니다.man mount
mount --bind /some/spare/dir /busy/dir/mountpoint
당신이 가지고 있다고 가정합니다 /srv/some/stuff
.
mkdir /home/offload/some/stuff
— 이것은 44G 여유 공간 파티션에 있습니다.mv /srv/some/stuff /srv/some/previous-stuff
— 임시 릴리스 이름mount --bind /home/offload/some/stuff /srv/some/stuff
- 이제 일부/물건이 다른 파티션에 있습니다!mv /srv/some/previous-stuff/* /srv/some/stuff
— 내용을 원래 이름으로 복원하여 /srv의 공간을 확보합니다.