내 노트북에 기본(즉, 제조업체의) Windows 7이 설치되어 있다고 가정해 보겠습니다(SSD 장치, BIOS/MBR 파티션 테이블(있는 경우) 포함). 장치의 파티션은 Windows에 완전히 할당되고 전용입니다.
이제 Windows 옆에 Linux 시스템을 설치하려고 합니다. 이를 위해서는 먼저 Windows 파티션을 줄여야 합니다. Windows 내에서 또는 gparted를 사용하여 이 작업을 수행하는 방법을 찾을 수 있지만,parted나 fdisk와 같은 명령줄 프로그램을 사용하여 이 작업을 어떻게 수행할 수 있습니까?
답변1
ntfsresize
다음은 ntfs-3g / ntfsprogs
명령줄(패키지의)을 사용하여 NTFS 파티션 크기를 조정하는 방법에 대한 치트 시트 입니다 fdisk
. 이는 Windows XP부터 8까지 작동합니다. GParted는 MBR/DOS 및 EFI/GPT 드라이브에서 다음을 모두 수행합니다.ntfs-3g/ntfsprogs 설치됨. 내 참고자료는 맨 끝에 있습니다.
좋아요, 이 경우에는 MBR 파티션과 NTFS 파티션(Windows C:)이 있는 149GB 디스크가 있습니다. 새 파티션을 위한 공간을 확보하기 위해 크기를 20GB로 조정합니다(@sourcejedi가 말했듯이: 단위에 주의하세요). 데이터 및/또는 기타 운영 체제.
전제 조건
- NTFS 정리파일 시스템: Linux 기반 NTFS 도구는 데이터 손실 가능성을 최소화하기 위해 이미 완전히 일관성이 없는 경우 NTFS 파일 시스템에 접근하는 것을 거부합니다. 그렇지 않은 경우
ntfsfix
(Linux에서) 또는chkdsk /f
(Windows에서)를 사용해야 합니다 . - 지원중요한 데이터(예: @peterph가 위에 쓴 대로 ntfsclone 사용)
- 어느 쪽인지 알아장치 및 파티션이 경우 /dev/sdb1의 크기를 조정하고 싶습니다.
A. 축소파일 시스템
확인하다크기를 조정할 준비가 되었는지 확인하세요.
~ ntfsresize --check /dev/sdb
계속 진행하기 전에 이 시점에서 모든 경고를 해결해야 합니다.
사이즈 확인파일 시스템 크기는 다음과 같이 조정할 수 있습니다.
~ ntfsresize --info /dev/sdb > ... > You might resize at 16865632256 bytes or 16866 MB (freeing 112060 MB). > ...
시험18GB로 축소하는 방법(1분 안에 20GiB로 축소하겠습니다):
~ ntfsresize --no-action --size 18G /dev/sdb1 > ... > The read-only test run ended successfully.
크기 조정최대 18GB:
~ ntfsresize -v --size 18G /dev/sdb1 > ... > Successfully resized NTFS on device '/dev/sdb1'. > You can go on to shrink the device for example with Linux fdisk. > IMPORTANT: When recreating the partition, make sure that you > 1) create it at the same disk sector (use sector as the unit!) > 2) create it with the same partition type (usually 7, HPFS/NTFS) > 3) do not make it smaller than the new NTFS filesystem size > 4) set the bootable flag for the partition if it existed before > Otherwise you won't be able to access NTFS or can't boot from the disk! > ...
팁: 디스크에 불량 섹터와 같은 알려진 문제가 있는 경우 " --bad-sectors
" 옵션을 추가하십시오.
B. 크기 조정분할
이전 단계에서는 파티션이 아닌 파일 시스템을 축소했습니다. 다음을 통해 이를 확인할 수 있습니다.
~ disktype /dev/sdb
> Block device, size 149.1 GiB (160041885696 bytes)
> DOS/MBR partition map
> Partition 1: 149.1 GiB (138602266624 bytes, 8459611 clusters of 16 KiB, bootable)
> Volume size 18.37 GiB (20799750144 bytes, 1269516 clusters of 16 KiB)
보시다시피 볼륨 크기와 파티션 값이 다르며 파티션 1은 여전히 드라이브를 채웁니다. 이 단계에서는 파티션을 삭제하고 NTFS 파일 시스템의 새 크기에 맞게 더 작은 파티션을 만들어야 합니다. 내 디스크에는 DOS/MBR 파티션 테이블이 있으므로 다음을 사용하겠습니다 fdisk
(@peterph는 위의 GPT에 대한 답변을 가지고 있습니다).
~ fdisk /dev/sdb
삭제분할
"p"를 입력하여 해당 디스크의 파티션을 표시하고 크기가 조정된 파일 시스템이 포함된 파티션을 확인하세요.
"d"를 입력하면 삭제할 파티션을 묻는 메시지가 나타납니다.
> Command (m for help): d > partition number (1-3, last one by default) : 1
재건하다분할
이제 기본 파티션과 첫 번째 파티션의 순서가 유지되도록 더 작은 파티션을 다시 만듭니다.
> Command (m for help): n > Command action > e extended > p primary partition (1-4) p > Partition number (1-4): 1 > First cylinder (1-31, default 1): 1
파일 시스템을 18GB로 축소했으므로 파티션을 20GiB로 설정했습니다.
> Last cylinder or +size or +sizeM or +sizeK (1-31, default 31): +20G
파일 시스템이 NTFS라는 것을 알고 있으므로 유형에 대해 명령 작업 "t"를 사용하고 NTFS에 대해 나열된 16진수 코드 "7"을 사용합니다.
> Command (m for help): t > Selected partition 1 > Hex code (type L to list codes): 7 > Changed system type of partition 1 to 7 (HPFS/NTFS)
다음으로 파티션이 여전히 다음으로 표시되어 있는지 확인하고 싶습니다.부팅 가능:
> Command (m for help): p Device Boot Start End Blocks Id System /dev/sdb1 63 40644449 40644387 7 HPFS/NTFS
부팅 플래그를 추가하여 새 파티션을 부팅 가능하게 만듭니다.
> Command (m for help): a > Partition number (1-4): 1
쓰다변경된 파티션 테이블을 디스크에 쓰고 명령 작업 "w"를 사용하여 fdisk를 종료합니다.
> Command (m for help): w
이제 최종 크기 조정파일 시스템
"size" 스위치 없이 ntfsresize를 사용하면 전체 파티션의 여유 공간을 사용할 수 있습니다(모든 공간만 사용 - @sourcejedi에게 감사드립니다)
~ ntfsresize -v /dev/sdb1
이제 우리는 할 수 있다확인하다~이든분할그리고파일 시스템드라이브에 쌍이 있습니다.
~ disktype /dev/sdb
> ...
> Partition 1: 20.0 GiB (21474836480 bytes, 40644387 sectors from 63, bootable)
> Type 0x07 (HPFS/NTFS)
> Windows NTLDR boot loader
> NTFS file system
> Volume size 19.98 GiB (21453361644 bytes, 1269516 clusters of 16 KiB)
인용하다
답변2
GParted는 심각한 실수를 방지하는 데 도움이 되기 때문에 종종 사용할 가치가 있습니다. 명령줄 도구의 가장 큰 장점은 세부 사항을 더 명확하게 볼 수 있다는 것입니다. 이는 예상치 못한 취약성이 발생한 경우에 유용합니다(적어도 취약성이 손상된 경우 세부 정보를 통해 이유를 이해하는 데 도움이 될 수 있습니다). 그러나 "내 디스크가 이제 0으로 가득 차서 처음부터 시작해야 합니다"가 될 때까지 실수로부터 배우고 싶지 않은 한 다른 사람들이 이 프로그램을 사용하는 것을 권장하지 않습니다.
또한 데스크탑 Linux 설치 프로세스에서는 Windows 파티션 크기를 조정하기 위한 사용자 친화적인 도구를 제공해야 합니다. (또는 공식 문서). 이것은 일반적인 상황입니다. 전반적으로 이것이 나의 첫 번째 추천이 될 것입니다.
이러한 모든 옵션은 오류 발생 시 백업을 제안합니다..
parted
혼란스럽게도 명령줄 도구를 사용하면 안 됩니다 . 예전에는 편리한 옵션이었지만 개발자는 더 이상 이 옵션을 사용하여 파일 시스템 크기를 조정하는 것을 지원하지 않습니다.
그렇지 않으면 크기( )를 제외하고 동일한 세부 정보 ntfsresize
로 파티션을 사용한 다음 삭제하고 다시 생성 할 수 있습니다. fdisk
참고 단위 - 일부 도구는 MB를 사용하고 다른 도구는 MB라고 말하지만 MiB를 의미합니다. fdisk
MiB를 사용하고 ntfsresize
MB를 사용하십시오. 게으른 방법은 ntfsresize를 필요한 것보다 훨씬 작게(예: 2x) 조정한 다음 파티션을 다시 만든 후 명시적인 크기 없이 ntfsresize를 다시 실행하는 것입니다.
단위를 변환하는 어려운 방법의 경우 bash에서 숫자 표현식을 실행할 수 있습니다. 예를 들어 10GiB(바이트 단위)를 보면 다음과 같습니다 echo $((10 * 1024 * 1024 * 1024))
. 이러한 표현식을 명령줄 도구로 사용할 수 있습니다(예: ntfsresize
.
ntfsresize의 파티션 이름은 /dev/sda1
. lsblk -f
모든 파티션(부팅 디스크 포함)과 해당 크기를 나열하고 파일 시스템에 대한 정보를 알려줍니다. fdisk
디스크 이름이 필요합니다. /dev/sda
예:
MBR의 경우 다시 생성될 파티션 세부 정보에는 파티션 유형, "활성"/부팅 가능 플래그, 시작 오프셋이 포함됩니다. [1] fdisk
섹터의 파티션 오프셋이 기본적으로 표시되어야 합니다. (그렇지 않은 경우 표시되지 않은 분수가 있을 수 있습니다. 끝에 +로 표시될 수 있지만 거기에 문제가 있을 수 있습니다. 항상 fdisk
섹터 모드에서 사용해야 합니다.)
내부적으로 입력 오류를 방지하기 위해 fdisk
가끔 숫자를 선택하고 마우스 가운데 버튼으로 붙여넣기도 합니다. 이를 위해서는 X Windows가 필요하거나 텍스트 모드가 필요합니다.갤런/분. 요즘에는 콘솔에서 기본적으로 gpm을 사용할 수 있는 것이 덜 일반적이라고 생각하지만, Clonezilla Live를 사용했을 때는 gpm이 있었습니다. 이는 편리하지만 먼저 전화번호를 잃어버릴 수도 있습니다. 따라서 삭제하기 전에 원시 파티션 오프셋을 기록해 두어야 합니다.
[1] GPT는 다른 유형 형식을 사용하여 더 많은 플래그와 파티션 UUID를 추가합니다. 플래그는 기본 Windows 파티션에 적용되지 않으며 파티션 UUID는 아직 많이 사용되지 않았습니다.
답변3
필요한 ntfsresize
유틸리티ntfs-3g
NTFS 파일 시스템의 크기를 조정할 수 있는 소프트웨어 패키지입니다. 그러나 파티션을 변경하기 전에 파티션을 백업해야 합니다. Windows에서는 크기가 조정된 파티션의 모양에 대해 다른 생각을 하는 경우가 있습니다.
이 유틸리티(동일 패키지)를 사용하면 백업을 편리하게 수행할 수 있습니다 ntfsclone
. 전체 파티션이 아닌 파일 시스템(예: 파일 콘텐츠 및 메타데이터)만 저장하기 때문입니다.
ntfsclone -s -o windows-partitinon.img /dev/sdXY
디스크 공간이 부족하거나 시간이 충분하다면 이미지를 압축하는 것이 좋습니다.
ntfsclone -s -o - /dev/sdXY | xz -v -9 > windows-partitinon.img.xz
중간 규모의 Windows의 경우체계파티션(사용자 데이터가 많지 않음)(예: ~40GB)은 압축 수준에 따라 몇 시간이 걸릴 수 있습니다. 반면에 압축되지 않은 크기의 약 40~30%를 얻을 수도 있습니다.
이 외에도 전체 복구를 수행하려면 파티션 레이아웃을 백업해야 합니다. 논리 파티션 없이 MBR 파티션 테이블을 사용하는 경우 영향을 받는 장치의 MBR만 필요합니다.
dd if=/dev/sdX bs=512 count=1 of=mbr.sav
논리적 부분이 있는 경우 최소한 텍스트 설명을 저장하십시오. 예:
fdisk -l -u s /dev/sdX > partitions.sav
GPT의 경우 다음을 사용할 수 있습니다.gdisk
, GPT 데이터를 파일에 저장한 다음 다시 로드할 수 있습니다.
ntfsresize
그런 다음 쓰기 모드에서 실행할 수 있습니다 . 운영 체제가 변경 사항을 등록하는지 확인하기 위해 Windows로 재부팅하라는 메시지가 나타날 수 있습니다(여러 번 가능).
이 모든 작업을 수행한 후에만 파티션 크기를 조정할 수 있습니다. parted
아마도 해당 하드 드라이브에 사용되는 파티션 구성표를 이해하는 다른 파티션 프로그램만큼 좋을 것입니다.