GPT 디스크(/dev/sdaX)에서 파티션 번호를 수정하는 방법

GPT 디스크(/dev/sdaX)에서 파티션 번호를 수정하는 방법

저는 Gparted를 사용하여 보조 드라이브에서 EFI(/dev/sda1) 및 Ubuntu(/dev/sda2) 파티션을 삭제했습니다. 세 번째 파티션(/dev/sda3)은 데이터용이므로 할당되지 않은 공간을 모두 사용하기 위해 처음 두 파티션을 삭제하여 크기를 조정했습니다. 이제 디스크에 고유한 부분만 있으므로 /dev/sda1을 얻기 위해 해당 부분의 번호를 수정하고 싶습니다. GPT 파티션 테이블이 있는 디스크에서 작동하는 가장 쉬운 방법은 무엇입니까? 감사합니다!

답변1

gdisk파티션 테이블을 다시 작성하는 데 사용할 수 있습니다 .

sudo gdisk /dev/sda
p(p 명령은 최근 파티션 테이블을 화면에 인쇄합니다)
s(s-명령은 파티션 테이블 항목을 정렬합니다)
p (화면에서 결과를 보려면 p 명령을 다시 사용하십시오.)
w (변경된 파티션 테이블을 디스크에 기록)
q (gdisk 종료)

gdisk다음 에서 가장 유용한 정보를 찾을 수 있습니다 .http://www.rodsbooks.com/gdisk/

답변2

마지막 링크를 찾고 새로운 것을 배우는 것에 흥미를 느낀 나는 32GB USB 드라이브를 사용하여 내 시스템에서 Generoso의 파티션 상황을 재생했습니다. 다음은 내가 찾은 결과입니다. 하지만 먼저 내 결과는 다음과 같습니다.

결론: 내 예제는 1(최종) 파티션을 목표로 하므로 마지막에 이름만 변경했습니다. 실제 섹터는 건드리지 않았습니다. 위 댓글의 링크에는 섹터 번호가 이동되는 예가 나와 있습니다. 나는 그것을 따라가서 USB 디스크를 비참하게 바보짓하고 파괴했습니다. 파티션을 가지고 노는 것이 실제로 얼마나 위험한지 증명했습니다!!
어쩌면 내 시나리오가 여러 파티션에서도 작동할 수도 있으니 직접 시도해 보세요. 감히 기본 파티션을 사용해 보세요.. 하하.
알겠습니다. 내 정보는 다음과 같습니다.

결과: Gparted를 사용하여 각각 1GB의 파티션 3개를 만들었습니다.

# fdisk -l /dev/sdc
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 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
Disklabel type: dos
Disk identifier: 0xf33657fc

Device     Boot   Start     End Sectors Size Id Type
/dev/sdc1          2048 2099199 2097152   1G 83 Linux
/dev/sdc2       2099200 4196351 2097152   1G 83 Linux
/dev/sdc3       4196352 6293503 2097152   1G 83 Linux

디스크를 사용하여 파티션 마운트 3.
수동으로 파일을 배치합니다.

# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root    16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt

디스크를 사용하여 파티션 3을 마운트 해제합니다.
Gparted를 사용하여 파티션 1과 2를 제거하고 파티션 3을 확장하여 전체 디스크를 사용합니다.

# fdisk -l /dev/sdc
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 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
Disklabel type: dos
Disk identifier: 0xf33657fc

Device     Boot Start      End  Sectors Size Id Type
/dev/sdc3        8192 62844671 62836480  30G 83 Linux

디스크를 사용하여 파티션 3을 마운트합니다.
파티션 3의 파일을 확인합니다.

# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root    16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt

디스크를 사용하여 파티션 마운트 해제 3.
드라이브에서 파티션 테이블을 복사합니다.
파티션 테이블을 표시합니다.

# sfdisk -d /dev/sdc > sdc.tab
# cat sdc.tab
label: dos
label-id: 0xf33657fc
device: /dev/sdc
unit: sectors

/dev/sdc3 : start=        8192, size=    62836480, type=83

vi sdc.tabsdc3을 sdc1로 변경하는 데 사용됩니다 .
변경된 파티션 테이블을 적용합니다.

# sfdisk --no-reread -f /dev/sdc < sdc.tab
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 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
Disklabel type: dos
Disk identifier: 0xf33657fc

Old situation:

Device     Boot Start      End  Sectors Size Id Type
/dev/sdc3        8192 62844671 62836480  30G 83 Linux

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xf33657fc.
Created a new partition 1 of type 'Linux' and of size 30 GiB.
/dev/sdc2: 
New situation:

Device     Boot Start      End  Sectors Size Id Type
/dev/sdc1        8192 62844671 62836480  30G 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

명령이 완료되자마자 파티션 1이 자동 마운트됩니다.
파일을 확인하세요.

# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root    16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt

디스크를 사용하여 파티션 마운트 해제 1.
완료되었습니다.

추신. cat SomeFile.txt매번 그랬지만 그 결과물을 포함시킬 필요가 없다고 느꼈습니다.

답변3

/dev/sda1의 크기를 /dev/sda3보다 크게 조정해야 합니다. 그런 다음 sda1 위에 sda3을 복사하십시오. sda1 파일을 확인하고 문제가 없으면 sda3을 제거하고 그에 따라 sda1 크기를 조정하십시오.

관련 정보