/var를 넓은 파티션으로 이동하거나 파티션 크기(이 경우 /dev/sda3)를 30G로 늘리는 방법은 무엇입니까?

/var를 넓은 파티션으로 이동하거나 파티션 크기(이 경우 /dev/sda3)를 30G로 늘리는 방법은 무엇입니까?

저는 데비안 9 시스템에서 작업하고 있습니다. 패키지를 설치하려고 하면 dpkg다음 오류와 함께 실패합니다.

Selecting previously unselected package mariadb-server-10.1.
Preparing to unpack .../3-mariadb-server-10.1_10.1.38-0+deb9u1_amd64.deb ...
/var/lib/mysql: found previous version 10.1
ERROR: There's not enough space in /var/lib/mysql/
dpkg: error processing archive /tmp/apt-dpkg-install-ShVFUI/3-mariadb-server-10.1_10.1.38-0+deb9u1_amd64.deb (--unpack):

이것은 df -h:

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           791M  9.1M  782M   2% /run
/dev/sda2        55G  9.8G   43G  19% /
tmpfs           3.9G  158M  3.8G   4% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1       511M  132K  511M   1% /boot/efi
/dev/sda5       844G  540G  261G  68% /home
/dev/sda3       9.2G  8.7G   32K 100% /var
tmpfs           791M   12K  791M   1% /run/user/1001

fdisk -l산출:

Disk /dev/sda: 931.5 GiB, Disklabel type: gpt
Disk identifier: AAF695F1-3DA1-4E89-86F4-59439A75BCBB
   Device      Start        End    Sectors Size   Type
/dev/sda1       2048    1050623    1048576 512M   EFI System
/dev/sda2    1050624  118237183  117186560 55.9G  Linux filesystem
/dev/sda3 1933993984 1953523711   19529728 9.3G   Linux filesystem
/dev/sda4 1917392896 1933993983   16601088 7.9G   Linux swap
/dev/sda5  118237184 1917392895 1799155712 857.9G Linux filesystem

/var(가능한 경우) 넓은 파티션으로 이동하는 방법은 무엇입니까 ? 아니면 크기를 /dev/sda330G로 늘리는 방법은 무엇입니까?

답변1

파일 시스템은 lvm(논리 볼륨 관리) 또는 기타 유연한 구성 시스템이 아닌 디스크 파티션에 있으므로 파티션을 이동/크기 조정하지 않는 것이 좋습니다. 너무 까다롭고 위험합니다.

/var다른 파티션으로 이동하는 방법 :

첫 번째 솔루션

루트 파일 시스템에는 여유 공간이 꽤 있으므로 다시 /이동할 수 있습니다 . /var불행하게도 시스템이 실행되는 동안에는 /var을 마운트 해제하거나 수정할 수 없습니다. 내 제안은 USB 드라이브나 CD에 있는 복구 라이브 Linux 배포판을 사용하여 시스템을 부팅하는 것입니다.갈라진, 쉘을 열고 다음 지침에 따라 하드 드라이브의 시스템 설정을 수정하십시오.

mkdir /tmp/root
mkdir /tmp/var
# mount the filesystems
mount /dev/sda2 /tmp/root
mount /dev/sda3 /tmp/var
# copy everything in /var
# do not forget the / after var in /tmp/var/
rsync -aHXA /tmp/var/ /tmp/root/var

#그런 다음 텍스트 편집기를 사용하여 정적 마운트 목록에서 /dev/sda3 /var과 관련된 행을 주석 처리 하거나 삭제합니다 /tmp/root/var/etc/fstab. 라이브 시스템에서는 장치가 메인 시스템의 장치와 다를 수 있으므로 sda문제가 발생할 수 있으므로 sdb수정하기 전에 확인하시기 바랍니다.

수정 후 /dev/sda3은 여유 공간이 있는 사용되지 않은 파티션입니다.

두 번째 해결책

아래의 공간 요구 사항이 주로 mariadb 패키지 및 모든 관련 데이터베이스 파일에서 발생할 것으로 예상된다면 두 번째 하드 드라이브 또는 SSD를 마운트하고 해당 디스크/파티션의 디렉터리 /var/만 이동하는 것이 현명할 것입니다 . /var/lib/mysql이 경우 데이터를 이동하기 위해 시스템을 중지하고 다른 배포판에서 부팅할 필요가 없지만 mariadb 서비스(설치되어 활성 상태인 경우)만 중지하면 됩니다.

귀중한 파일이 포함된 mariadb 또는 mysql 패키지를 설치했는지 여부는 귀하의 게시물에서 명확하지 않습니다. /var/lib/mysql왜냐하면 한편으로는 을 Selecting previously unselected package mariadb-server-10.1.다른 한편으로는 볼 수 있기 때문입니다 /var/lib/mysql: found previous version 10.1. 이미 가지고 있다고 가정하면 다음과 같습니다.

# prepare and format somehow a new disk/partition, let's call it $MYSQLDEV
# mount it in a temporary place
mkdir /tmp/mysql
mount $MYSQLDEV /tmp/mysql
# copy existing data on new partition
rsync -aHXA /var/lib/mysql /tmp/mysql
# if you are really sure you have copied everything,
# type with care and double check
rm -rf /var/lib/mysql/*
# mount filesystem in the final position
umount $MYSQLDEV
rm -f /tmp/mysql
mount $MYSQLDEV /var/lib/mysql/

그런 다음 부팅할 때마다 새 파티션을 마운트해야 함을 시스템에 알리는 줄을 yout 파일에 추가해야 합니다. 이를 교체하고 ext4로 포맷한다고 가정하면 /etc/fstab다음과 같이 보일 것입니다.$MYSQLDEV

$MYSQLDEV /var/lib/mysql ext4 defaults 1 2

관련 정보