가장 쉬운 방법(USB 장치 2개)

가장 쉬운 방법(USB 장치 2개)

그래서 USB에 쿠분투를 설치했는데 문제는 디스크 공간을 잘못 포맷/분할한 것입니다. 이로 인해 Linux 설치 시 여유 디스크 공간이 거의 남지 않게 되었고, 남은 디스크 공간은 실제로 사용하지 않는 "USB 저장소" 파티션에 낭비되었습니다.

분할

그래서 sdb2 파티션을 위한 추가 공간으로 사용할 수 있도록 sdb1 파티션을 다시 포맷하는 가장 좋은 방법이 무엇인지 알고 싶습니다.

답변1

아래쪽 영역의 파티션을 이동하는 것은 큰 고통이 될 것입니다. 여기서 문제는시작은 어떻게 이루어지는가. 나는 이것이 SDB5 512MB 영역이라고 생각합니다. 시스템이 sdb5에서 부팅하도록 지시하는 일부 부팅 코드가 있을 수도 있습니다.

그러나 이는 해당 부팅 블록의 무언가가 Linux가 sdb6에 설치되어 있음을 "인식"한다는 의미입니다.감히 이걸 바꾸지 마세요.

가장 쉬운 방법(USB 장치 2개)

새 USB 키를 받아 삽입하세요. Linux에서 부팅합니다. 새 USB 플래시 드라이브를 동일한 방식으로 포맷하되 "더 나은" 파티션을 사용하십시오. 그런 다음 이전 키의 데이터를 새 키에 복사합니다. 작동하는지 확인하세요. 이제 끝났습니다!

할 수 있는 작업(하나의 USB 장치만 사용)

아시다시피 Linux에는 마운트 지점이 있습니다! 믹스 앤 매치할 수 있어그것들! 그래서:

  • 중요한 콘텐츠를 백업하세요

  • Linux에서 부팅 및 로그인뿌리단일("복구") 모드

  • ext4로 다시 포맷하여 sdb1 파티션의 내용을 삭제합니다.

    mkfs.ext4 /dev/sdb1

  • 이제 Linux 설치를 확인하고 무엇이 공간을 차지하고 있는지 확인하세요.

    du -sk /* 2>/dev/null 코드 복사 정렬 -n |

예를 들어, 내 테스트 시스템에서(몇 초 동안 디스크를 검색한 후):

...smaller fry removed...
12220   /run
13320   /sbin
18992   /etc
125244  /boot
873108  /home
873324  /lib
1154900 /opt
1537488 /root
4648100 /usr
15088048        /var

그래서 저는 주로 /var에 대한 시스템을 사용합니다. 완벽한. /var를 이동하겠습니다.

  • 새로 포맷된 sdb1을 /mnt에 마운트합니다.

    마운트 /dev/sdb1 /mnt

  • "/var"를 "/mnt"로 복사합니다(따라서 시작하기 전에 rsync가 설치되어 있는지 확인하세요).

    rsync -a /var /mnt

  • 이제 (이 작업은 "단일 모드", 텍스트 모드 시작, 모든 서비스 중지로 수행되어야 합니다. 그렇지 않으면 이 작업을 수행하지 못할 수도 있습니다)

    mv /var /oldvar # 필요한 경우 되돌아가서 oldvar를 var로 복원할 수 있습니다.

  • 새로운 /var를 다시 생성하세요.

    mkdir /var

  • oldvar의 권한을 확인하고 새 /var에 복사하세요.

  • /etc/fstab의 마운트 지점 목록에 sdb1에 대한 줄을 추가합니다.

    echo "/dev/sdb1 /var ext4 자동 0 2" >> /etc/fstab

이제 sdb1 파티션은 부팅할 때마다 /var에 연결되며 이 파티션에 최대 17GiB의 데이터를 저장할 수 있습니다.

지금 재부팅하면 모든 것이 이전처럼 작동할 것입니다. /var이 가득 차고 sdb6에는 oldvar가 차지하므로 여유 공간이 전혀 없습니다.모든 것이 괜찮은지 철저히 확인하세요.. 확실하다면 oldvar 디렉터리와 모든 하위 디렉터리를 삭제하세요.

노트:내 예제에서는 /var를 사용합니다. /home을 이동해야 할 수도 있습니다. 같은. 또는 두 개 이상의 수준을 드릴다운하여 무엇이 공간을 차지하고 있는지 확인할 수 있습니다.~에/var:

du -sk /var/* 2> /dev/null 코드 복사 정렬 -n |

내 경우에는 /var/www가 공간의 90%를 차지하는 것으로 나타났습니다. 따라서 전체 /var를 재배치할 필요가 없습니다. "/var/www"를 사용하여 위 단계를 수행해도 여전히 90%의 이점을 얻을 수 있습니다. 또한 이제 단일 모드로 로그인하거나 재부팅할 필요가 없습니다. 내 시스템에서 /var/www는 확실히 Apache HTTP 서버에서만 사용되며 재부팅하지 않고도 중지했다가 다시 시작할 수 있기 때문입니다(/var/log, /var /run, /var/mail 등이 사용 중일 수 있으며 단일 모드가 필요할 수 있습니다):

apache2ctl stop
rsync -a /var/www /mnt
mv /var/www /var/oldwww
mkdir /var/www
# Set up the same ownership and permissions of the old /var/www
chown www-data:users /var/www  
chmod 775 /var/www
# Compare the two ls lines
ls -la /var | grep www
# If ownership and pemissions are OK go on
echo "/dev/sdb1 /var/www   ext4   auto  0  2" >> /etc/fstab
# Free up sdb1 from mnt
umount /mnt
# Check whether the automount from fstab works
mount /var/www
# Now everything is as before, www is there and useable, it's just on sdb1.
apache2ctl start
# Now verify everything works again. IF it works, oldwww is useless.
rm -rf /var/oldwww # kill the original www

(새 /var/www에 직접 생성하고 설치한 다음 /mnt를 전혀 건드리지 않고 oldww를 www에 동기화할 수도 있습니다.)

관련 정보