현재 위치에 맞지 않는 프로젝트를 가져오려면 현재 위치보다 더 큰 파티션으로 이동해야 합니다. 또한 Windows의 가상 머신에서 Linux를 실행하고 있습니다.
jack@ubuntu:~$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME FSTYPE SIZE MOUNTPOINT LABEL
sda 20G
ââsda1 ext4 15.7G /
ââsda2 1K
ââsda5 swap 4.3G [SWAP]
sdc 40G
ââsdc1 ext4 40G work
sdb 20G
ââsdb1 ext4 20G /mnt/disk
jack@ubuntu:~$ sudo fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000750e0
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 32956415 16477184 83 Linux
/dev/sda2 32958462 41940991 4491265 5 Extended
/dev/sda5 32958464 41940991 4491264 82 Linux swap / Solaris
답변1
/
파티션을 끝에 배치 하면 sda
간단한 업그레이드 프로세스가 수행됩니다.
가상 머신을 종료하고 가상 머신 관리 인터페이스에서 원시 디스크 드라이브의 크기를 조정합니다.
단일 사용자 모드로 부팅하고 마지막 파티션의 크기를 조정하여 새 공간으로 확장합니다.
두 개의 다른 파티션 사이에 끼어 있는 파티션에서 이 작업을 수행하면 가치 있는 것보다 더 많은 문제가 발생할 수 있습니다.
따라서 파티션의 일부를 /
새 디스크로 이동하는 것이 좋습니다.
가상 머신을 종료하고 다른 가상 디스크를 추가합니다.
새 디스크로 이동하려는 기존 콘텐츠
/
와 남은 공간을 수용할 수 있도록 크기를 조정합니다. 16GiB 중 14GiB를 사용하고 있고 10GiB/
만 이동하려고 한다고 가정해 보겠습니다./home
현재 공간을 두 배로 늘리려면 새 드라이브를 20GiB로 만들 수 있습니다./bin
핵심 운영 체제 디렉터리( ,/boot
, ,/etc
,/root
, 대부분) 는 이동하고 싶지 않습니다./usr
다른 디스크로 이동하는 것이 안전합니다./usr/share
/usr/local
가급적이면 단일 사용자 모드에서 백업을 시작하십시오. (이렇게 하면 백그라운드 작업이 많이 실행되지 않는 경우 나중에 작업이 더 쉬워집니다.)
/dev
그런 다음 새 디스크가 어느 노드에 있는지 알아보세요 . 가지다다양한 방법가서 이것을 해보세요. 가능성이 가장 높지만 예/dev/sdb
를/dev/sdc
들어 이전에 매핑된 광학 드라이브 뒤에 배치될 수도 있습니다./dev/sdb
설명을 위해 여기서는 가정을 합니다.parted
이 새 가상 디스크를 분할 하는 데 사용됩니다 .# parted /dev/sdb (parted) mklabel gpt (parted) mkpart ext2 1 -1 (parted) quit
이는 전체 가상 디스크를 차지하게 됩니다. 이렇게 하면 나중에 디스크 용량이 다시 부족할 경우 위의 간단한 크기 조정 프로세스를 사용할 수 있습니다.
관련되지 않은 다수의 디렉터리(예
/home
: ,/var
및/usr/local
)를 이동하려는 경우 하나의 대용량 디스크를 분할하는 것보다 각 디렉터리에 대해 별도의 가상 디스크를 생성하는 것이 좋습니다. 파티셔닝은 실제 디스크 세계에서 허용되는 해킹 유형입니다. 가상 머신을 사용하면 여러 개의 독립 하드 드라이브에 드는 비용을 없앨 수 있습니다.임시 위치에 새 파일 시스템을 생성하고 마운트합니다. 나는 보통 그들을 이렇게 부른다
/mnt/newhome
:# mkfs.ext4 /dev/sdb1 # mkdir -m 400 /mnt/newhome # mount /dev/sdb1 /mnt/newhome
마이그레이션할 트리의 현재 내용을 복사하고 복사 권한을 확인합니다. 이를 수행하는 방법에는 여러 가지가 있습니다.
# cd /home # find . -print | cpio -pd /mnt/newhome OR # cp -aR * /mnt/newhome OR # rsync -a * /mnt/newhome
/mnt/newhome
내용을 신뢰할 수 있는지 확인하세요 . 예를 들어df -h
와 거의 동일한 값을 표시 합니까 ?du -h /home
아직 시작하지 않은 경우 단일 사용자 모드로 부팅합니다.
기존 파일 시스템을 다른 곳으로 옮기고 그 위에 새 파일 시스템을 배치합니다.
# cd / # mv home oldhome # mkdir -m 400 home # umount /mnt/newhome # mount /dev/sdb1 /home # chmod 755 home # chown root.root home
마지막 두 명령은 단지 예일 뿐입니다. 새 마운트 지점에 이전 마운트 지점과 동일한 소유자, 그룹 및 권한을 부여합니다. (이 최상위 디렉터리에 대한 권한을 얻기 위해 명령을 복사할 필요는 없습니다.)
단일 사용자 모드 프롬프트가 나타나면
exit
다중 사용자 모드로 계속 부팅하십시오. (또는init 5
예를 들어 일반 실행 수준이 5인 경우) 모든 것이 새 파일 시스템에서 작동하는지 확인합니다.(이 테스트를 수행하기 위해 재부팅하지 마십시오! 새 파일 시스템은 아직 자동으로 마운트되지 않습니다.)
파티션을 성공적으로 이동한 것에 만족하면
/etc/fstab
새 파티션을 가리키도록 조정하십시오.(이 답변의 범위를 벗어납니다. 구체적인 내용은 Linux마다 다르며 일반적으로 *ix 사이에서는 차이가 훨씬 더 큽니다.)
정상적으로 다시 시작하십시오. 다시 확인하세요. 이 모든 것이 여전히 작동합니까? 이전 파일 시스템이 아닌 새 파일 시스템이 설치되어 있는지 확인하십시오.
모든 것이 올바르게 이동되고 설치되었다고 확신하면 이전 복사본이 차지했던 공간을 확보하십시오:
rm -rf /oldhome
.
. :) 이동할 파일 시스템이 여러 개인 경우 GOTO 2
(또는 모든 새 가상 디스크를 한 번에 추가하지 않는 경우 1단계)
희소 가상 디스크(예: VMware)를 설정하는 방법을 알고 있는 VM 시스템을 사용하면 낭비되는 공간에 대해 걱정할 필요가 없습니다. 현재 사용되지 않는 공간을 회수하려면 일반적인 "축소" 프로세스를 따르기만 하면 됩니다.
다른 개선 사항도 있습니다. 예를 들어 운영 체제가 파티션 이름이나 UUID 대신 디스크 레이블을 사용하는 경우 -L /home
명령에 유사한 이름을 제공해야 할 수도 있습니다.mkfs.ext4
/etc/fstab