할당되지 않은 모든 공간을 사용하도록 마지막 파티션을 자동으로 확장하고 배치 모드에서 parted를 사용합니다.

할당되지 않은 모든 공간을 사용하도록 마지막 파티션을 자동으로 확장하고 배치 모드에서 parted를 사용합니다.

간단히 말해서 부팅 시(내장형 시스템) 이 작업을 자동으로 수행해야 합니다.

우리 엔지니어들이 이미지를 생산 장비에 플래시할 것입니다. 이러한 이미지에는 작은 파티션 테이블이 포함됩니다. 부팅 시 디스크에서 사용 가능한 모든 공간을 사용하려면 마지막 파티션(#3)을 자동으로 확장해야 합니다.

이것이 디스크의 여유 공간을 보면 알 수 있는 것입니다.

> parted /dev/sda print free
Model: Lexar JumpDrive (scsi)
Disk /dev/sda: 32.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
        17.4kB  1049kB  1031kB  Free Space
 1      1049kB  25.3MB  24.2MB  fat16        primary  legacy_boot
        25.3MB  26.2MB  922kB   Free Space
 2      26.2MB  475MB   449MB   ext4         primary
 3      475MB   1549MB  1074MB  ext4         primary
        1549MB  32.0GB  30.5GB  Free Space

파티션 3을 N(30.5GB)바이트로 확장해야 합니다.

메시지를 표시하지 않고 이 단계를 자동화하려면 어떻게 해야 합니까? 이는 세 번째 파티션 이후 여유 공간의 동적 크기와 함께 사용해야 합니다.

답변1

parted 스크립트를 올바르게 작성할 수 없었기 때문에(파티션이 마운트되었기 때문에 확인을 요청했는데 이해하지 못했거나 내가 찾은 다른 답변과 -1s반대됨 100%) 방금 알아냈습니다.성장 부분 도구이것이 바로 그 일입니다.

사용법은 간단합니다( growpart /dev/sda 3then resize2fs /dev/sda3또는 사용된 파일 시스템 유형에 대한 다른 적절한 명령).

데비안과 우분투에서는 다음과 같이 패키지되어 있습니다.클라우드 게스트 유틸리티.

답변2

현재 버전에서는 parted분할 resizepart에 작동해야 합니다( parted이해 100%또는 유사한 것 , 후자는 명령줄에서 옵션 구문 분석을 중지하는 -1s데에도 필요함 ). 정확한 값을 확인하려면 , 를 --사용할 수 있습니다 unit s. 그런 다음 파일 시스템이 나옵니다.print freeresize2fs


이전 버전에는 파티션과 파일 시스템의 크기를 한 번에 조정하는 명령이 parted있었으며 .resizevfat

Kobo e-reader 수정에서는 이것을 사용하여 내부 메모리의 세 번째 파티션 크기를 최대로 조정합니다. (맹목적으로 네 번째 파티션과 msdos 테이블 또는 이와 유사한 것이 없다고 가정합니다.)

start=$(cat /sys/block/mmcblk0/mmcblk0p3/start)
end=$(($start+$(cat /sys/block/mmcblk0/mmcblk0p3/size)))
newend=$(($(cat /sys/block/mmcblk0/size)-8))

if [ "$newend" -gt "$end" ]
then
    parted -s /dev/mmcblk0 unit s resize 3 $start $newend
fi

/sys/block/.../따라서 커널이 지원하는 경우 값을 얻을 수도 있습니다. 그러나 parted해당 명령은 제거되었으므로 이제 파티션을 확장하기 위해 파일 시스템이 제공하는 도구 (예: ) 와 함께 파티션을 확장하려면 resize두 단계를 수행해야 합니다 .resizepartresize2fsext*

답변3

올바른 방법은 parted에 백분율 개념이 있다는 사실을 활용하는 것입니다. 그래서

parted /dev/sda resize 3 100%

답변4

또는 다음을 사용하여 한 줄을 만들 수 있습니다 sfdisk.

echo ", +" | sfdisk -N 3 /dev/sda

바라보다Karel Zak의 블로그 게시물자세한 내용은.

관련 정보