저는 데비안 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/sda3
30G로 늘리는 방법은 무엇입니까?
답변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