명령줄에서 ext4 파티션(또는 방법에 따라 모든 유형의 파티션)의 크기를 조정하는 가장 쉬운 방법은 무엇입니까(아마도 가장 적은 명령을 사용하지만 이해하기 가장 쉽습니다)?
GUI에서 Gparted와 같은 도구를 사용하는 것은 확실히 쉽지만 명령줄에서는 어떻습니까? 기술적으로 여전히 명령줄에 있기 때문에 텍스트 기반 GUI도 답으로 간주될 것 같습니다. 간단해야합니다.
파티션이란 랩톱과 같은 개인용 컴퓨터의 단일 디스크에 있는 간단한 파티션을 의미합니다. 예를 들어 크기를 조정하고 싶습니다 /dev/sda4
. RAID가 없고 디스크 드라이브가 하나만 있으며 여기에는 복잡한 것이 없습니다. 단일 디스크(/dev/sda의 /dev/sdaX)에 있는 간단한 파티션입니다.
답변1
fdisk
런타임 시 파티션 테이블을 변경할 수 있습니다 . 인용하다Linux에서 실시간 크기 조정 ext4 파일 시스템
(존재하다코드 침묵블로그):
부인 성명: 다음 지침을 따르면 실수할 경우 데이터가 쉽게 파괴될 수 있습니다. 다음을 수행하기 전에 백업한 가상 머신에서 이 작업을 수행하고 있습니다. 백업을 하지 않아서 데이터가 손실되었다면 여기로 와서 불평하지 마세요.
...
첫째, 디스크 크기를 늘리십시오.
ESXi에서는 가상 디스크의 크기를 늘리는 것만큼 간단합니다. 이제 더 큰 하드 드라이브를 갖게 되었지만 여전히 a) 파티션 크기를 늘리고 b) 파일 시스템 크기를 조정해야 합니다.
둘째: 파티션 크기를 늘리십시오.
fdisk
런타임 시 파티션 테이블을 변경할 수 있습니다 . 기본 Ubuntu 설치에서는 기본 파티션(sda1), 확장 파티션(sda2) 및 하나의 논리 파티션(sda5) 등 3개의 파티션이 생성됩니다. 확장 파티션은 스왑 전용이므로 데이터 손실 없이 쉽게 이동할 수 있습니다.
기본 파티션 삭제
확장 파티션 삭제
원래 파티션과 동일한 섹터로 시작하여 더 큰 새 기본 파티션을 생성합니다(스왑용으로 일부 남겨두기).
스왑 공간을 절약하기 위해 논리 파티션을 포함하는 새로운 확장 파티션을 만듭니다.
me@ubuntu:~$ sudo fdisk /dev/sda Command (m for help): p Disk /dev/sda: 268.4 GB, 268435456000 bytes 255 heads, 63 sectors/track, 32635 cylinders, total 524288000 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: 0x000e49fa Device Boot Start End Blocks Id System /dev/sda1 * 2048 192940031 96468992 83 Linux /dev/sda2 192942078 209713151 8385537 5 Extended /dev/sda5 192942080 209713151 8385536 82 Linux swap / Solaris Command (m for help): d Partition number (1-5): 1 Command (m for help): d Partition number (1-5): 2 Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): Using default value 1 First sector (2048-524287999, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-524287999, default 524287999): 507516925 Command (m for help): p Disk /dev/sda: 268.4 GB, 268435456000 bytes 255 heads, 63 sectors/track, 32635 cylinders, total 524288000 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: 0x000e49fa Device Boot Start End Blocks Id System /dev/sda1 2048 507516925 253757439 83 Linux Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): e Partition number (1-4, default 2): 2 First sector (507516926-524287999, default 507516926): Using default value 507516926 Last sector, +sectors or +size{K,M,G} (507516926-524287999, default 524287999): Using default value 524287999 Command (m for help): p Disk /dev/sda: 268.4 GB, 268435456000 bytes 255 heads, 63 sectors/track, 32635 cylinders, total 524288000 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: 0x000e49fa Device Boot Start End Blocks Id System /dev/sda1 2048 507516925 253757439 83 Linux /dev/sda2 507516926 524287999 8385537 5 Extended Command (m for help): n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 5 First sector (507518974-524287999, default 507518974): Using default value 507518974 Last sector, +sectors or +size{K,M,G} (507518974-524287999, default 524287999): Using default value 524287999 Command (m for help): p Disk /dev/sda: 268.4 GB, 268435456000 bytes 255 heads, 63 sectors/track, 32635 cylinders, total 524288000 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: 0x000e49fa Device Boot Start End Blocks Id System /dev/sda1 2048 507516925 253757439 83 Linux /dev/sda2 507516926 524287999 8385537 5 Extended /dev/sda5 507518974 524287999 8384513 83 Linux Command (m for help): t Partition number (1-5): 5 Hex code (type L to list codes): 82 Changed system type of partition 5 to 82 (Linux swap / Solaris) Command (m for help): p Disk /dev/sda: 268.4 GB, 268435456000 bytes 255 heads, 63 sectors/track, 32635 cylinders, total 524288000 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: 0x000e49fa Device Boot Start End Blocks Id System /dev/sda1 2048 507516925 253757439 83 Linux /dev/sda2 507516926 524287999 8385537 5 Extended /dev/sda5 507518974 524287999 8384513 82 Linux swap / Solaris Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. me@ubuntu:~$ sudo reboot
나중에 나는 부팅 가능 플래그를 설정하지 않았다는 것을 알았습니다.너한테는 별로 필요하지 않아.
셋째: 파일 시스템을 확장합니다.
resize2fs
마운트된 파티션에서 온라인으로 이 작업을 수행 할 수 있습니다 .me@ubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 91G 86G 12M 100% / udev 3.9G 4.0K 3.9G 1% /dev tmpfs 1.6G 696K 1.6G 1% /run none 5.0M 0 5.0M 0% /run/lock none 3.9G 144K 3.9G 1% /run/shm none 100M 16K 100M 1% /run/user me@ubuntu:~$ sudo resize2fs /dev/sda1 resize2fs 1.42.5 (29-Jul-2012) Filesystem at /dev/sda1 is mounted on /; on-line resizing required old_desc_blocks = 6, new_desc_blocks = 16 The filesystem on /dev/sda1 is now 63439359 blocks long. me@ubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 239G 86G 142G 38% / udev 3.9G 12K 3.9G 1% /dev tmpfs 1.6G 696K 1.6G 1% /run none 5.0M 0 5.0M 0% /run/lock none 3.9G 152K 3.9G 1% /run/shm none 100M 36K 100M 1% /run/user
사소한 문제: 재부팅 후 스왑 공간이 비활성화됩니다. 결과적으로 를 실행하고 새 UUID로
mkswap
조정 하고 스왑을 열어야 합니다./etc/fstab
me@ubuntu:~$ sudo mkswap /dev/sda5 Setting up swapspace version 1, size = 8384508 KiB no label, UUID=141d401a-b49d-4a96-9b85-c130cb0de40a me@ubuntu:~$ sudo swapon --all --verbose swapon on /dev/sda5 swapon: /dev/sda5: found swap signature: version 1, page-size 4, same byte order swapon: /dev/sda5: pagesize=4096, swapsize=8585740288, devsize=8585741312
/etc/fstab
이전 스왑 파티션의 UUIDmkswap
를 .
답변2
저와 같은 상황을 겪지 않으시라고 이렇게 질문을 드립니다. Ubuntu 18.0.4 LTS를 게스트로 실행하는 동적 디스크에서 파일 시스템(Ext4)의 크기를 조정해야 합니다. 호스트에서 디스크 크기를 조정한 다음 파일 시스템의 크기를 조정했습니다.
일반 명령을 실행할 수 없습니다. 예를 들어:
$ resize2fs /dev/sda2
resize2fs 1.44.1 (24-Mar-2018)
The filesystem is already 13180160 (4k) blocks long. Nothing to do!
그리고 fdisk
꽤 복잡합니다. 마운트 해제된 디스크에서 작업하려면 LiveCD를 실행해야 할 수도 있습니다.
이 두 명령은 내 문제를 쉽고 빠르게 해결했습니다.
$ growpart /dev/sda 2
CHANGED: partition=2 start=4096 old: size=105441280 end=105445376 new: size=409595871,end=409599967
$ resize2fs /dev/sda2
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/sda2 is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 25
The filesystem on /dev/sda2 is now 51199483 (4k) blocks long.
참고: 2
첫 번째 명령은 장치의 파티션 번호를 나타냅니다 /dev/sda
.
답변3
파티션과 파일 시스템의 크기를 늘리려면 먼저 실행하여 fdisk
파티션 크기를 늘린 다음 실행하여 resize2fs
파일 시스템의 크기를 늘리세요.
둘 다의 크기를 줄이려면 먼저 실행 resize2fs
한 다음 를 실행하세요 fdisk
.
답변4
노알로의 솔루션분명히 다른 것보다 훨씬 간단합니다.
에코 "-+" |<부품 번호>/dev/sd엑스
작동 방식에 대한 간단한 참고 사항: 단일 파티션에서 작동한다는 -N
의미 입니다. sfdisk
이렇게 시작하면 sfdisk
대화형으로 시작 위치, 크기 및 선택적 파티션 유형을 기다립니다. " -
"는 시작 위치가 변경되지 않음을 의미하고, " +
"는 끝 위치가 최대한 많은 공간을 사용함을 의미합니다. 그 후에는 print
및 명령을 사용해야 합니다 write
. 리더는 echo "- +" |
이것을 한 줄로 수행합니다.
한계는 여유 공간이 있어야 한다는 것입니다.직후. 파티션 크기를 조정한 후 스왑 파티션이 존재하는 경우(즉, 실제 데이터가 없는 경우) 이 문제도 쉽게 해결할 수 있습니다 sfdisk
. 위 구문을 사용하여 변경할 파티션이 on sda1
이고 스왑이 on이라고 가정하면 sda2
128G 디스크가 있고 6G의 스왑이 필요합니다. 첫 번째 단계는 스왑 파티션을 끝으로 이동하는 것입니다.
echo "122G +" | sfdisk -N2 /dev/sda
이제 첫 번째 파티션을 확장합니다.
echo "- +" | sfdisk -N1 /dev/sda
을 사용하여 크기를 조정합니다 resize2fs
. 새로운 교환이 승인되었는지 확인해야 할 수도 있습니다. swapoff
및 설명서를 mkswap
참조 하십시오 . 이는 이 질문의 범위를 벗어납니다.swapon
fstab
명령 정보 sda2
:
이런 식으로 데이터가 있는 파티션을 이동하지 마십시오! 모든 데이터가 손실됩니다. 이 명령은 데이터를 이동하지 않고 파티션 경계만 이동합니다. sda1( )에 사용되는 명령은 - +
파티션의 시작 위치가 변경되지 않으므로 위험하지 않습니다. 이는 -
단일 파티션에 사용될 때 " "의 의미입니다.
@noalo 감사합니다