전제 조건

전제 조건

내 노트북에 기본(즉, 제조업체의) 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. 축소파일 시스템

  1. 확인하다크기를 조정할 준비가 되었는지 확인하세요.

    ~ ntfsresize --check /dev/sdb
    

    계속 진행하기 전에 이 시점에서 모든 경고를 해결해야 합니다.

  2. 사이즈 확인파일 시스템 크기는 다음과 같이 조정할 수 있습니다.

    ~ ntfsresize --info /dev/sdb
    > ...
    > You might resize at 16865632256 bytes or 16866 MB (freeing 112060  MB).
    > ...
    
  3. 시험18GB로 축소하는 방법(1분 안에 20GiB로 축소하겠습니다):

    ~ ntfsresize --no-action --size 18G /dev/sdb1
    > ...
    > The read-only test run ended successfully.
    
  4. 크기 조정최대 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
  1. 삭제분할

    "p"를 입력하여 해당 디스크의 파티션을 표시하고 크기가 조정된 파일 시스템이 포함된 파티션을 확인하세요.

    "d"를 입력하면 삭제할 파티션을 묻는 메시지가 나타납니다.

    > Command (m for help): d
    > partition number (1-3, last one by default) : 1
    
  2. 재건하다분할

    이제 기본 파티션과 첫 번째 파티션의 순서가 유지되도록 더 작은 파티션을 다시 만듭니다.

    > 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)
    
  3. 다음으로 파티션이 여전히 다음으로 표시되어 있는지 확인하고 싶습니다.부팅 가능:

    > 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
    
  4. 쓰다변경된 파티션 테이블을 디스크에 쓰고 명령 작업 "w"를 사용하여 fdisk를 종료합니다.

    > Command (m for help): w
    
  5. 이제 최종 크기 조정파일 시스템

    "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를 의미합니다. fdiskMiB를 사용하고 ntfsresizeMB를 사용하십시오. 게으른 방법은 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-3gNTFS 파일 시스템의 크기를 조정할 수 있는 소프트웨어 패키지입니다. 그러나 파티션을 변경하기 전에 파티션을 백업해야 합니다. 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아마도 해당 하드 드라이브에 사용되는 파티션 구성표를 이해하는 다른 파티션 프로그램만큼 좋을 것입니다.

관련 정보