출처 : http://hoyoung2.blogspot.com/2010/05/home.html
리눅스 home 디렉터리 옮기기라는 무슨 말이고, 왜 옮겨야 하는 것이라면 리눅스에서는 보통 파일이 저장되는 곳이 바로 home 폴더이며,
시스템에 용량이 없다고 하면 보통 home 폴더의 용량이 꽉 차있을것이다.
실제로 minecraft 서버가 멈추면서, 황급히 관리자모드로 접속하여 체크했을때, 아니나 다를까나 월드맵이 26G으로 상당한 크기로 점유하고 있었으며,
부팅용으로 사용되는 산업용 32G ssd 가 힘겹게 버티고 있었다고 하는 상황이었습니다.
그래서 급히 산업용 512G SSD 샘플이 보이길래 이걸 테스트하고 만든 업체에 피드백이나 날려보자! (......원래 특수상황이었지만..)
512G SSD을 장착하고, 리눅스 폴더 옮기는 방법을 찾아 봤으나 이외로 너무 간단해서 방법을 공유하고자 한다.
퍼온 것이지지만, 추가로 작업한것도 있고 해서 추가로 작업하는 방법까지 서술하였다.
먼저, 충분한 크기의 partition을 만들자.
그리고 나서, 새로운 partition을 mount시키자.
$mkdir /mnt/newhome
$sudo mount -t ext3 /dev/hda5 /mnt/newhome
그럼, 파일들을 복사하자:
“/home” 디렉토리는 hardlinks, softlinks, 파일들, nested 디렉토리를 포함하기 때문에, 일반적인 copy(cp) 명령어로는 완전히 수행할 수 없다.
그래서, Debian archiving guide:에서 배운것을 사용할 것이다.
$cd /home/
$find . -depth -print0 | cpio --null --sparse -pvd /mnt/newhome/
모두 copy가 되었는지 확인하자. 여러분의 입맛에 따라서 약간 수정하거나 가공해서 사용하자.
그리고 나서 새로운 partition을 unmount시키자.
$sudo umount /mnt/newhome
기존 권한을 확인해보자.
$ls -alh / | grep home
필자는 보통 755 으로 설정되어 있음을 확인했다. (기본 권한)
새로운 “home”을 만들수 있도록 기존의 것을 백업하자
$sudo mv /home /old_home
/home이 /old_home으로 변경되었기 때문에, 이제 더이상 /home디렉토리가 없다. 그래서 먼저 /home 디렉토리를 다시 만들어야 한다.
$sudo mkdir /home
권한을 기존것과 똑같이 재설정하자.
$sudo chmod 755 /home
새로운 home을 Mount하자
$sudo mount /dev/hda5 /home
===아래 부분은 보통 작업이나 필자는 이 부분을 버리고, blkid 유틸리로 마운트한 하드의 uuid 을 확인후, fstab 에 uuid 형식으로 마운트 구문을 적어줌으로써 끝.
그럼, ubuntu가 부팅시 새로운 home을 마운트할 수 있도록 “/etc/fstab”파일에 다음 라인을 추가하자:
/dev/hda5 /home ext3 nodev,nosuid 0 2
모든게 완료되면 “/old_home”디렉토리는 지우자
$sudo rm -r /old_home
Michael, Russ and Magnus posted this solution on the ubuntu-users mailing list a few months ago.