Debian Linux 루트 디스크가 가득 차서 /var 폴더를 다른 디스크로 이동해야 합니다.

Debian Linux 루트 디스크가 가득 차서 /var 폴더를 다른 디스크로 이동해야 합니다.

디스크 중 하나에는 공간이 부족하지만 다른 디스크는 거의 비어 있습니다. 가장 큰 폴더( /var)를 다른 디스크로 전송하고 에 설치하는 방법에 대한 조언이 필요합니다 /var. /var폴더는 현재 /파티션에 있습니다. 할당되지 않은 공간이 90GB입니다 /dev/sdb. 이것은 vmware 가상머신입니다.

$df -H result

Filesystem                              Size  Used Avail Use% Mounted on
rootfs                                   22G   20G  711M  97% /
udev                                     11M     0   11M   0% /dev
tmpfs                                   425M  398k  425M   1% /run
/dev/disk/by-uuid/a8db5cdb-96f3-4497-9   22G   20G  711M  97% /
tmpfs                                   5.3M     0  5.3M   0% /run/lock
tmpfs                                   850M     0  850M   0% /run/shm
/dev/sdb1                                11G  980M  8.9G  11% /home

$fdisk -l result

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: 0x000c0f7f

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048      194559       96256   82  Linux swap / Solaris
/dev/sda2   *      194560    41940991    20873216   83  Linux

Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders, total 209715200 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: 0x0002dc8d

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20482047    10240000   83  Linux

답변1

일반적으로 파일을 새 파티션으로 물리적으로 이동한 다음 빈 /var를 마운트 지점으로 다시 만든 다음 mount /dev/sdb1 /var.(영구적인 효과를 얻으려면 다음과 같은 줄을 추가하세요 /etc/fstab)

/dev/sdb1   /var    ext4    rw  0   1

그러나 "물리적으로 파일을 새 파티션으로 이동" 단계에는 더 많은 설명이 필요합니다. 일반적인 데비안 시스템에는 /var열려 있는 파일, 데이터베이스, 특수 노드(소켓 등)가 많이 있을 수 있습니다.

먼저 /etc/fstab위의 내용을 수정하세요. 그런 다음 시스템을 단일 사용자 모드로 전환하여 /var.

sudo init 1

그런 다음 /var를 새 임시 위치에 마운트하고 해당 내용을 복사할 수 있습니다 /var.

mkdir /mnt/var
mount /dev/sdb1 /mnt/var  # Temporary mount

cd /var
cp . -ax /mnt/var # Copy /var contents to new partition

cd /
mv /var /var.old  # Backup old /var in case anything goes wrong
umount /mnt/var   # We are done with that for now
reboot

시스템이 다시 시작되면 /var모든 파일이 보존된 상태로 올바른 위치에 자동으로 설치됩니다. 모든 것이 만족스러우면 rm -Rf /var.old백업 복사본을 삭제할 수 있습니다.

답변2

경고 받다, 데이터가 손실되지 않으면 init 1type_outcast에서 권장하는 대로 시스템을 부팅하거나 라이브 USB 시스템을 부팅하여 다음 프로세스를 수행해야 합니다.

sdb에 이미 파티션이 있으므로 전체 파티션을 사용하려면 파일 시스템이 생성되었는지 확인하면 됩니다. 그렇지 않은 경우에는 직접 생성하십시오( mkfs).

생성 후 두 개의 파티션 마운트

mkdir /mnt/orig
mkdir /mnt/dest

mount /dev/sdb1 /mnt/dest
mount /dev/sda1 /mnt/orig

그리고 rsync/var를 /mnt로 변경하세요.

rsync -av /mnt/orit/var/* /mnt/dest/

완료되면 파티션 UUID를 식별 blkid하고 /mnt/orig/etc/fstab을 수정하여 새 /var 파티션의 UUID를 가리키는 /var에 대한 새 줄을 만듭니다.

UUID=UUID_returned_by_blkid /var ext4 defaults 2 2

관련 정보