디렉토리 구조를 변경하지 않고 한 파일 시스템에서 다른 파일 시스템으로 이동하는 방법은 무엇입니까?

디렉토리 구조를 변경하지 않고 한 파일 시스템에서 다른 파일 시스템으로 이동하는 방법은 무엇입니까?

/dev/xvda1용량이 가득 차서 내용을 30GB 파일 시스템으로 옮기고 싶습니다 udev.

Filesystem      Size  Used Avail Use% Mounted on
udev             30G  4.0K   30G   1% /dev
tmpfs           5.9G  768K  5.9G   1% /run
/dev/xvda1      7.8G  7.4G     0 100% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none             30G     0   30G   0% /run/shm
none            100M     0  100M   0% /run/user

어떻게 해야 하나요?

스택: EC2 Ubuntu 머신.

답변1

많은 양의 데이터를 복사하는 데 cp를 사용하지 마십시오.
또한 중단되면 다시 시작할 수 있으므로 rsync를 사용합니다. 다음을 사용하세요:

rsync -az -H /path/to/source  /path/to/destination

-a : Archive mode (i.e. recurse into directories, and preserve symlinks, file permissions, file modification times, file group, file owner, device files & special files) <br>
-z : Compress file data during the transfer <br>
-H : Preserve hard links (i.e. copy hard links as hard links)

댓글 작성자가 지적한 대로 편집하세요. 이것이 귀하의 / 디렉토리인지 알 수 없습니다.
bash 또는 zsh를 셸로 사용하는 경우 다음을 추가하세요.

--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}

이제는 되었다

rsync -az -H --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /path/to/source  /path/to/destination 

그렇지 않고, 다른 쉘을 사용하는 경우에는 --exclude각각의 다른 디렉토리에 대해 하나의 명령문을 수행해야 합니다.

답변2

대부분의 경우 한 파일 시스템에서 다른 파일 시스템으로 파일을 이동하지 않습니다. 가상 머신에서 디스크를 확장하거나 동일한 디스크에서 더 많은 공간을 얻으려면 파일 시스템이 포함된 파티션을 확대한 다음 파일 시스템을 확장하여 파티션을 채워야 합니다(사용할 명령은 파티션 유형에 따라 다름). 및 파일 시스템 유형). 새 디스크로 이동하는 경우 일반적으로 위에서 설명한 대로 전체 파티션을 복사한 다음 확대하는 것이 더 빠르고 쉽습니다.

귀하의 경우 이는 가상 머신이므로 먼저 더 큰 디스크를 제공해야 합니다. 지적한대로댓글에 마크 플롯닉(Mark Plotnick)이 있습니다., 조사하다AWS 가이드;새 볼륨을 연결하기 위한 웹 인터페이스와 복제 수행(스냅샷 생성 및 복원)을 위한 웹 인터페이스가 있습니다.

이는 /dev스토리지 파일 시스템이 아니라 RAM의 파일 시스템이라는 점에 유의하세요. 30GB의 여유 공간은 저장할 수 있는 최대 데이터 양이지만 RAM의 일부를 차지하며 재부팅 시 손실됩니다. 다시,파일을 로 이동하지 마십시오 /dev. 재부팅하면 해당 파일이 삭제됩니다..

관련 정보