Linux(debian 9) - 루트 파티션이 가득 참: 디렉터리를 외부 드라이브에서/로 이동합니다.

Linux(debian 9) - 루트 파티션이 가득 참: 디렉터리를 외부 드라이브에서/로 이동합니다.

단일 저장 장치에 설치된 Debian 9 시스템이 있습니다.

장치 크기는 4GB보다 약간 작으며 데비안 이미지가 기록된 단일 파티션이 있습니다.

이 장치를 제거할 수 없습니다. 이는 임베디드 시스템의 일부이며 영구적으로 부착됩니다.

그러나 더 큰 FS가 필요한 경우 사용자 확장을 위해 예비 슬롯이 제공되므로 시스템에 SD 카드를 추가할 수 있습니다.

내 의도는 SD 카드에 아마도 16GB의 단일 파티션을 만드는 것입니다.

SD 카드로 이동해도 안전한 디렉토리는 무엇인지 알고 싶습니다. 어떻게 해야 하나요?

예를 들어, 많은 Linux 시스템에서는 /home 폴더를 별도의 물리적 장치나 별도의 파티션으로 이동합니다.

따라서 SD 파일 시스템의 루트에 /home 디렉터리를 만들 수 있다는 것을 알고 있습니다. 내가 어떻게 해야 할지 모르는 것은 데비안 시스템에 /home이 이동했음을 알리는 방법입니다. 아마도 데비안에 이동했다고 알리기 전에 원본 파일 시스템의 /home의 모든 내용을 새 SD 카드에 복사해야 합니까?

/tmp 및 /var 폴더도 이동할 수 있을 것으로 추측됩니다.

안전하게 이동할 수 있는 다른 것이 있나요? 어떤 상황에서도 /bin, /sbin 또는 /root를 이동하면 안 된다고 생각합니까?

이전에 /home이 다른 디스크에 있는 이와 같은 시스템으로 작업한 적이 있지만 설치가 완료된 후 이를 이동할 필요가 없었습니다.

또한 이 정보를 찾기 위해 어떤 키워드를 검색해야 하는지도 몰랐습니다. 다소 성숙한 요청처럼 보이셨다면 죄송합니다. 감사해요

답변1

/homeOS의 꼭 필요한 부분이 아니라는 사실은 이를테면 /usr새 장치로 옮기는 것보다 더 실현 가능하게 만듭니다. 필수 OS 계층 구조를 이동하는 경우 다른 rescue파일 시스템이나 라이브 CD 또는 USB 파일 시스템을 종료하고 부팅하고 싶을 것입니다 . 임베디드 장치에서는 어려울 수도 있고 불가능할 수도 있습니다.

하지만 당신이 이사하고 있으니 /home조심해서 진행하면 됩니다.

먼저 단일 사용자 모드로 부팅합니다. 필수적이지 않은 서비스, 특히 /home. /home 아래에 있지 않은지 확인한 pwd다음 루트를 얻으십시오.

$ cd /tmp
$ sudo -i

그 다음에:

1) SD 카드를 삽입하고 파티션을 생성합니다. 파티션을 생성한 후 새 계층을 보관할 파일 시스템을 만듭니다 /home. SD 카드 파티션이 장치라고 가정해 보겠습니다./dev/sdc1

# mkfs.ext4 /dev/sdc1

2) 다음 위치에 새 파일 시스템을 마운트합니다 /mnt.

# mount /dev/sdc1 /mnt

삼)복사(움직이지 마세요) 또는 rsync귀하 /home의 계층을 SD 카드에 저장하세요(슬래시에 주의하세요). 설치 후 rsyncSD 카드를 마운트 해제합니다.

# rsync -HAXav /home/ /mnt/
# umount /mnt

4) 백업/etc/fstab

# cp -p /etc/fstab /etc/fstab.safety

5) SD 카드 파일 시스템을 식별 UUID하고 이를 /etc/fstab마운트할 항목을 추가하도록 편집합니다 . 다음을 사용하여 찾을 수 있습니다 .UUID/homeUUIDblkid

# blkid /dev/sdc1
/dev/sdc1: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="ext4"

위의 출력이 주어지면 새 fstab줄은 다음과 같습니다.

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext4 defaults 0 0

현재 데비안 시스템이 없기 때문에 이는 우분투의 예입니다. xxxxx... 부분을 SD 카드 파일 시스템의 올바른 UUID로 교체하고 SD 카드를 장착할 ext4때 사용한 파일 시스템 유형으로 교체해야 합니다 mkfs(그리고 의 출력에서 ​​확인했습니다 blkid).

6) 이전 /home디렉터리의 이름을 바꿉니다.

# mv /home /home.old

7) SD 카드에 대한 새 마운트 지점을 만듭니다.

# mkdir /home

이제 SD 카드를 수동으로 마운트할 수 있습니다.

# mount /home

그 아래의 내용은 /home아래의 내용과 동일합니다 /home.old. 홈 디렉터리, 디렉터리의 소유권과 권한 등 내용을 주의 깊게 확인하세요. .ssh그렇지 않으면 시스템 재부팅 시 원격으로 로그인하지 못할 수도 있습니다. 가능하다면 sshd 서비스를 시작하고 권한이 없는 계정에 대한 원격 로그인을 테스트하십시오.

모든 것이 괜찮아 보이면 재부팅하세요. 시스템이 다시 시작되면 마운트된 파일 시스템에서 사용 가능한 공간을 확인하십시오.

# df

은 (는) 아직 남아 있기 /때문에 아직 여유 공간이 없습니다 . /home.old다음에서 사용 가능한 공간이 많이 표시됩니다 /home.

# du -h /
# du -h /home

모든 것이 좋아 보인다고 만족하면 다음을 제거할 수 있습니다 /home.old.

# cd /; rm -rf home.old

당신 rm /etc/fstab.safety도 할 수 있지만, 떠나도 해가 거의 없을 정도로 작을 것입니다.

관련 정보