마운트 지점을 변경하는 방법

마운트 지점을 변경하는 방법

나는 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/. 왜냐하면 이것은 /내 디스크 공간이 부족하기 때문입니다. 나는 /home44G의 사용 가능한 네트워크 공간이 있다는 것을 알았습니다. 그것은 나에게 완전히 헛소리입니다. 그래서 나는 /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 mountmount --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의 공간을 확보합니다.

관련 정보