내 파일 시스템:
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 9.8G 0 9.8G 0% /dev
tmpfs 9.8G 18M 9.8G 1% /dev/shm
tmpfs 9.8G 1.8M 9.8G 1% /run
tmpfs 9.8G 0 9.8G 0% /sys/fs/cgroup
/dev/mapper/fedora-root 49G 14G 33G 30% /
tmpfs 9.8G 160K 9.8G 1% /tmp
/dev/nvme0n1p5 976M 195M 715M 22% /boot
/dev/mapper/fedora-home 37G 28G 6.3G 82% /home
/dev/nvme0n1p1 256M 47M 210M 19% /boot/efi
tmpfs 2.0G 12M 2.0G 1% /run/user/1000
gnome-app "disk"는 /dev/nvme0n1
.
/dev/mappe/fedora-home이 437GB가 되도록 이 400GB를 홈 파티션에 추가하려면 어떻게 해야 합니까?
디스크 암호화(LUKS)와 Fedora 29를 사용하고 있습니다.
편집하다
별도의 -l
출력은 sudo parted -l
다음과 같습니다.
Model: NVMe Device (nvme)
Disk /dev/nvme0n1: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 274MB 273MB fat32 EFI System Partition boot, hidden, esp
2 274MB 290MB 16.8MB Microsoft reserved partition msftres
5 406GB 407GB 1074MB ext4
6 407GB 511GB 104GB
4 511GB 512GB 1049MB ntfs Basic data partition hidden, diag
LSBL
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 260M 0 part /boot/efi
├─nvme0n1p2 259:2 0 16M 0 part
├─nvme0n1p4 259:4 0 1000M 0 part
├─nvme0n1p5 259:5 0 1G 0 part /boot
└─nvme0n1p6 259:6 0 96.7G 0 part
└─luks-29414c5a-13ed-4ddb-9403-8aa5d983fd4f
253:0 0 96.7G 0 crypt
├─fedora-root 253:1 0 50G 0 lvm /
├─fedora-swap 253:2 0 9.8G 0 lvm [SWAP]
└─fedora-home 253:3 0 36.9G 0 lvm /home
편집 2
답변을 주신 @frostschutz에게 감사드리며, 몇 가지 후속/이해 관련 질문이 있습니다.
내 이해
lsblk
전체 장치와 해당 파티션을 볼 수 있습니다. 사용 parted -l
된 각 파티션의 내용을 볼 수 있습니다.
따라서 lsblk를 보면 nvme0n1의 전체 크기가 477GB임을 알 수 있습니다. 디스크에는 6개의 파티션이 있습니다. 파티션 6은 3개의 마운트 지점이 있는 Luks 암호화 컨테이너임을 알 수 있습니다.
파티션 번호는 출력에 해당합니다.parted
그래서:
- nvme0n1p1 = 260M은 EFI 부팅입니다(parted -l에서 볼 수 있습니다)
- nvme0n1p2 = 16M은 Microsoft에서 예약한 것입니다(복구 파티션인 것 같습니다)
- nvme0n1p3이 없습니다. 여기에는 400GB가 있다고 추론할 수 있지만 정답은 아닙니다. 우리는 477G - 260M -16M - 1000M - 1G - 96.7G = 378G를 가지고 있습니다.
- nvme0n1p4 = 기본 데이터 공간, Ntfs - 아마도 오래된 창일 수 있지만 숨겨져 있나요? 이게 뭔지 모르겠어
- nvme0n1p5 = 부팅, Linux Grub용인 것 같은데요?
- nvme0n1p6 = luks lvm 컨테이너 암호화를 사용하여 페도라 설치.
lsblk
또한 파티션 2가 끝나는 위치(290MB)부터 파티션 3이 시작되는 위치(406GB)까지 "공간"이 있음을 보여줍니다.
내 후속 질문
나는 이것을 볼 수 parted
있고 lsblk
파티션 크기에 동의하지 않습니까? Parted
파트 6이 104GB라고 가정해 보겠습니다. lsblk
파트 6이 96.7GB라고 가정해 보세요.
gnome 프로그램 disk
에 따르면 406GB의 여유 공간이 있다고 합니다. 보고된 대로 전체 크기에서 사용된 파티션을 뺀 크기를 계산하면 lsblk
대략 다음과 같습니다. 378G 같은데 parted
406G에서 290M을 뺀 것 같으니 아마도 405일 겁니다.
1:어떤 보고된 측정기준을 신뢰해야 합니까?. 아니면 lsblk가 잘못된 크기를 보고하는 이유는 무엇입니까? 이 차이는 G(기본 10)와 GB(기본 2?) 간의 차이보다 더 커 보입니다. 하지만 정말 그럴까요?
파티션 3을 만드는 방법을 이해합니다. 9MB를 무작위로 할당하여 정수를 얻습니다. 현재 부팅은 1GB입니다. newboot ca를 할당했습니다. 900MB - 내 출력에 따르면 df
이 정도면 충분합니다. 현재 루트는 96.7GB이고 대략 200G에서 1200M을 뺀 크기를 할당합니다. 199G - 왜 공간이 부족합니까?
2:맞습니까?
dd를 통해 데이터를 복사하는 방법을 이해합니다.
이제 파티션 5(이전 부팅 - 방금 7에 복사함), 파티션 6(존재하지 않는 파티션?), 파티션 7 및 8(newboot 및 newroot? - 방금 만들고 복사한 것입니까?)을 삭제하고 싶다는 것을 알고 있습니다.
3: 그러면난 이해가 안 돼요이러한 새 파티션을 삭제하는 이유는 무엇입니까? 아니면 그냥 삭제된 번호인가요?
4: *newboot와 newroot를 다시 생성해야 하는 이유를 모르겠습니다. 제가 보기엔 우리가 그것을 만들고, 거기에 데이터를 복사하고, 삭제하고, 그런 다음 만드는 것 같은데요? 질문 3에 따라 삭제되지 않은 경우 왜 다시 생성되나요?
내가 읽는 방식: resize 명령이 파티션을 511GB 위치로 확장한다는 것을 이해합니다.
그런데 지금은 데이터가 없는 것 같은데요? 제가 어디서 잘못 이해한 걸까요?
편집 3
여기 까지 도달하면 나중에 조사해야 할 것 입니다 pvresize
.lvextend
resize2fs
답변1
따라서 디스크 중앙에는 약 400GB의 파티션되지 않은 공간이 있습니다(파티션 번호 3 누락). 이 간격 뒤에는 /boot 파티션(5)과 Fedora 설치가 포함된 LUKS 암호화 파티션(6)이 있습니다. 따라서 파티션 1, 2, (3개 누락), 5, 6, 4가 있습니다.
이 경우에는 Live CD(아무것도 설치하지 마세요) 파티션 5, 6을 이동한 다음 파티션 6을 확장합니다. 파티션 1, 2, 4는 변경되지 않은 상태로 유지됩니다. 대략적으로(!) 다음과 같이 할 수 있습니다:
# parted /dev/nvme0n1 mkpart unused3 290MiB 299MiB # should be 3
# parted /dev/nvme0n1 mkpart newboot 300MiB 1199MiB # should be 7
# parted /dev/nvme0n1 mkpart newroot 1200MiB 200GiB # should be 8
이렇게 하면 파티션 번호 3이 생성되고(해당 번호를 보존하기 위해) 5와 6을 대체할 두 개의 새로운 파티션 7과 8이 생성됩니다.파티션 간격이 부팅 및 루트 파티션을 포함할 만큼 충분히 크기 때문에 이 방법으로만 수행할 수 있습니다.
데이터를 다음 위치에 복사하세요.
# dd status=progress bs=1M if=/dev/nvme0n1p5 of=/dev/disk/by-partlabel/newboot
# dd status=progress bs=1M if=/dev/nvme0n1p6 of=/dev/disk/by-partlabel/newroot
두 복사본이 모두 성공적으로 만들어진 경우에만 계속할 수 있습니다. 이 시점까지 문제가 발생하면 재부팅하기 전에 newboot 및 newroot 파티션을 삭제하십시오. 그렇지 않으면 UUID 충돌이 발생합니다.
원래 파티션 번호를 복원하고 크기를 늘립니다.
# parted /dev/nvme0n1 rm 5 rm 6 rm 7 rm 8
# parted /dev/nvme0n1 mkpart newboot 300MiB 1199MiB # previously 7 now 5
# parted /dev/nvme0n1 mkpart newroot 1200MiB 200GiB # previously 8 now 6
# parted /dev/nvme0n1 resizepart 6 511GB
재부팅 후 남은 것은 pvresize
, lvextend
, resize2fs
, ... 적절하다고 판단되는 정상적인 성장 작업뿐입니다.
노트parted /dev/nvme0n1 unit mib print free
: 각 단계를 또는 이와 유사한 방법으로 검증합니다. 위의 명령 중 어느 것도 테스트되지 않았습니다(현재 귀하의 상황을 쉽게 재현할 수 없기 때문입니다). 이론상으로는 그럴 수 있지만 실제로는 조정해야 할 수도 있습니다. 문제가 발생할 경우 다시 설치할 수 있도록 데이터를 백업하는 것부터 시작하세요.
또 다른 방법은 누락된 파티션 3을 다시 만들고 luksFormat한 후 LVM에 추가하는 것입니다. 이렇게 하면 데이터를 이동할 필요가 없지만 시작할 때마다 하나가 아닌 두 개의 LUKS 컨테이너를 열어야 합니다.
gparted
터미널에서 수동으로 파티션을 이동하는 대신 파티션을 이동할 수도 있습니다 . 저는 이 프로그램을 직접 사용해본 적이 없어서 LUKS 컨테이너 등을 얼마나 잘 처리하는지 모르겠습니다.