재부팅하지 않고 / 파티션을 확대할 수 있나요?

재부팅하지 않고 / 파티션을 확대할 수 있나요?

/재부팅하지 않고도 루트( ) 파티션을 확장할 수 있습니다 fdisk(삭제하고 동일한 첫 번째 섹터로 다시 생성하지만 마지막 섹터가 더 큽니다).

그러나 커널을 만들 수는 없습니다.파티션 테이블 다시 읽기:

# partx -va /dev/vda
partx: /dev/vda: adding partition #5 failed: Device or resource busy
partx: /dev/vda: error adding partition 5

# kpartx -va /dev/vda
device-mapper: reload ioctl on vda5 failed: Invalid argument
add map vda5 : 0 41492480 linear 0:0 2048

# hdparm -z /dev/vda
/dev/vda:
 re-reading partition table
 BLKRRPART failed: Device or resource busy

# sfdisk -R /dev/vda
BLKRRPART: Device or resource busy
This disk is currently in use.

내가 무엇을 하고 있는지 알고 있습니다. 파티션의 ext 파일 시스템은 온라인 확장을 지원합니다.

커널이 파티션 테이블을 업데이트하도록 강제하는 방법이 있습니까?

편집하다: LVM에 대해 알고 있지만아니요이 질문에 대한 답변입니다.

답변1

커널은 영향을 받는 디스크의 모든 파티션을 마운트 해제할 때까지 이전(캐시된) 파티션 테이블을 사용합니다.

시스템이 실행되는 동안 / 파티션을 마운트 해제하고 마운트할 수 없으므로 유일한 옵션은 재부팅하는 것입니다.

파티션 테이블을 변경하지 않고도 볼륨(루트 볼륨 포함)의 크기를 조정할 수 있으므로 다음에 LVM을 사용해 보십시오.

답변2

온라인으로 파일 시스템의 크기를 조정하려면(특히 /) LVM과 같은 물리적 계층과 가상 계층 간의 추상화가 필요합니다.

실시간 크기 조정을 위해 LVM을 사용하려면 다음을 사용하십시오.

pvcreate /dev/sdX
vgcreate vg1 /dev/sdX
lvcreate Root -L10G

그러면 다음 번에 디스크가 거의 가득 찼을 때 lvextend /dev/mapper/vg1-Root -L+10G --resizefs더 많은 공간을 확보하게 되어 짜잔!

LVM에 대해 읽어보세요http://linux.die.net/man/8/lvm

편집하다

커널에 캐시된 파티션 테이블을 업데이트하도록 정중하게 요청하려면 시도해 볼 수 있지만 partprobe 언급한 대로 모든 파일 시스템을 다시 마운트해야 하기 때문에 작동하지 않을 것 같습니다. 이는 라이브 VM으로 부팅하지 않는 한 어렵습니다.

편집하다

파티션 크기를 조정할 수 있지만 이를 위해서는 보이는 크기를 기억/기록해야 하며 fdisk이는 모든 사람에게 매우 고급 단계입니다. 이 숫자를 확보하고 나면 시작 크기에서 파티션을 다시 생성하여 디스크를 채울 수 있습니다. 파티션이 디스크의 마지막 파티션이면 더 쉽습니다. 중간 파티션의 크기를 조정해야 한다면 확실히 운이 좋지 않습니다.

나는 고객을 위해 몇 번 해봤지만 그것은 끔찍하고 신경이 쓰이는 일입니다. 보안 및 데이터 보존상의 이유로 이 방법을 권장하지 않습니다.

관련 정보