저장 드라이브를 포맷하는 터미널 방법

저장 드라이브를 포맷하는 터미널 방법

터미널에서 저장 드라이브를 포맷하는 방법을 알고 싶습니다. 답변에 제공해야 할 유용한 사항은 향후 용도를 추정하는 데 사용할 수 있는 명령 및 기본 지식에 대한 옵션으로 자주 사용되는 것입니다. 특히 NTFS, FAT32, EXT4 등과 같은 다양한 파일 시스템에서 포맷하는 방법을 알고 싶습니다. 터미널을 통해 드라이브를 분할하는 방법에 대한 정보도 필요합니다.

터미널에서 대용량 외장 하드 드라이브(EHDD)를 NTFS로 포맷하려고 합니다.

다른 GUI 프로그램뿐만 아니라 이 프로그램에도 gparted를 사용할 수 있다는 것을 알고 있지만 여전히 터미널에서 이를 수행하는 방법을 알고 싶습니다.

답변1

사용 가능한 몇 가지 옵션이 있습니다.

  1. fdisk.
  2. parted(GParted의 CLI 형제).
  3. 다양한mkfs프로그램, 이미 파티션이 있고 포맷하려는 경우.

fdisk대화형 이며 parted도움말 명령이 있으므로 프로그램 내에서 언제든지 도움말을 찾을 수 있습니다. 둘 다 스크립트 가능합니다. 명령은 mkfs대화형이 아닙니다.


fdisk

fdisk/dev/sda인수로 장치(예: )를 기대합니다 . 여기에는 다음 명령이 있습니다.

Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the DOS compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

나는 그렇게 많이 사용하지 않습니다 fdisk. 저는 다음 사항에만 집중하겠습니다.


parted

parted그렇지 않다필요인수("추측"을 시도함)이지만 항상 디스크를 지정해야 합니다. 선택이 주어지면 parted선호해야 할 프로그램입니다. 여기에는 다음 명령이 있습니다.

  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  check NUMBER                             do a simple check on the file system
  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on partition NUMBER
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system
  resizepart NUMBER END                    resize partition NUMBER
  move NUMBER START END                    move partition NUMBER
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resize NUMBER START END                  resize partition NUMBER and its file system
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted

명령은 고유한 접두사(예: h의 약어 help)로 축약될 수 있습니다.

/tmp/part명령어를 보여드리기 위해 제가 만든 임시 파일( )을 사용할 예정 이므로 크기가 다소 작을 것입니다. 이를 필요한 장치( /dev/sda예: )로 교체해야 합니다.

먼저, 디스크에 파티션 테이블이 없으면 파티션 테이블을 만들어야 합니다.

parted /tmp/part mklabel gpt

또는 mklabel msdos구식 4-1차 파티션을 원하는 경우(라고 함)MBR 또는 MSDOS 파티션 테이블). 그런 다음 3GB에서 시작하여(즉, 초기 3G를 무료로 남겨두고) 크기가 2GB(즉, 5GB에서 끝남)인 ext4 파티션을 만듭니다. parted에 대한 위치는 MB 단위로 예상되지만 mkpartfs접미사를 지정할 수 있습니다.

parted /tmp/part mkpart primary ext4 3G 5G

그리고 또 다른 하나는 이제 1GB의 NTFS 파티션입니다.

parted /tmp/part mkpart primary ntfs 5G 6G

결과:

# parted /tmp/part print
Model:  (file)
Disk /tmp/blah: 10.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      3000MB  5000MB  2000MB               primary
 2      5000MB  6000MB  1000MB               primary  msftdata

SI 접두사를 사용하는 방법에 유의하세요. 반면 GParted는 꾸준히 사용합니다.바이너리 접두사(바보를 떨어뜨리는 동안 i). 파티션에 레이블을 지정하겠습니다.

# parted /tmp/part name 1 hello
# parted /tmp/part name 2 world
# parted /tmp/part print
Model:  (file)
Disk /tmp/blah: 10.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name   Flags
 1      3000MB  5000MB  2000MB               hello
 2      5000MB  6000MB  1000MB               world  msftdata

parted파일 시스템의 파티션을 ntfs잘 생성할 수 있지만 기존 파티션(!)을 NTFS로 포맷할 수는 없습니다 .

mkfs partition fs-type
         Make a filesystem fs-type on partition. fs-type can be one 
         of "fat16", "fat32", "ext2", "linux-swap", or "reiserfs".

실제로 parted는 파티션을 조작하는 데 사용해야 한다고 알려줍니다.파일 시스템이 아님, 이를 통해 다음과 같은 결과를 얻을 수 있습니다.


mkfs

mkfs와 마찬가지로 fsck기본적으로 다양한 파일 시스템별 명령에 대한 프런트엔드입니다. 내 시스템에서는 예를 들어 , mkfs.bfs, mkfs.cramfs, mkfs.ext2, mkfs.ext3, mkfs.ext4, , , mkfs.ext4dev을 ( 를) 사용할 수 있습니다.mkfs.fatmkfs.minixmkfs.msdosmkfs.ntfsmkfs.vfat

불행하게도 parted위에서 사용한 것과 같이 파일에서는 잘 작동 하지만 mkfs해당 파일에서 파티션을 찾을 수는 없습니다. 실제로 블록 장치가 필요하므로 /tmp/file에 새 파일을 사용하려면 mkfs강제로 사용해야 합니다. 와 같이 포맷하려는 파티션에 해당하는 블록 장치를 사용하게 됩니다 /dev/sda2. 일반적인 구문은 다음과 mkfs같습니다.

# mkfs --help
Usage: mkfs [options] [-t type fs-options] device [size]

Options:
 -t, --type=TYPE  file system type, when undefined ext2 is used
     fs-options   parameters to real file system builder
     device       path to a device
     size         number of blocks on the device
 -V, --verbose    explain what is done
                  defining -V more than once will cause a dry-run
 -V, --version    output version information and exit
                  -V as version must be only option
 -h, --help       display this help and exit

For more information, see mkfs(8).

보시다시피 -t플래그를 사용하면 파일 시스템별 플래그를 전달할 수 있습니다. 예를 들어 NTFS 플래그는 다음과 같습니다.

# mkfs.ntfs --help 
Usage: mkntfs [options] device [number-of-sectors]

Basic options:
    -f, --fast                      Perform a quick format
    -Q, --quick                     Perform a quick format
    -L, --label STRING              Set the volume label
    -C, --enable-compression        Enable compression on the volume
    -I, --no-indexing               Disable indexing on the volume
    -n, --no-action                 Do not write to disk

Advanced options:
    -c, --cluster-size BYTES        Specify the cluster size for the volume
    -s, --sector-size BYTES         Specify the sector size for the device
    -p, --partition-start SECTOR    Specify the partition start sector
    -H, --heads NUM                 Specify the number of heads
    -S, --sectors-per-track NUM     Specify the number of sectors per track
    -z, --mft-zone-multiplier NUM   Set the MFT zone multiplier
    -T, --zero-time                 Fake the time to be 00:00 UTC, Jan 1, 1970
    -F, --force                     Force execution despite errors

Output options:
    -q, --quiet                     Quiet execution
    -v, --verbose                   Verbose execution
        --debug                     Very verbose execution

Help options:
    -V, --version                   Display version
    -l, --license                   Display licensing information
    -h, --help                      Display this help

Developers' email address: [email protected]
News, support and information:  http://tuxera.com

-Q그럼 빠른 포맷( ), 비블록 장치 파일에서 작동하도록 강제( -F), 레이블 설정( -L "hello world") 을 사용하여 NTFS 파티션을 만들어 보겠습니다 .

# mkfs -t ntfs -F -Q -L "hello world" /tmp/file
/tmp/file is not a block device.
mkntfs forced anyway.
The sector size was not specified for /tmp/file and it could not be obtained automatically.  It has been set to 512 bytes.
The partition start sector was not specified for /tmp/file and it could not be obtained automatically.  It has been set to 0.
The number of sectors per track was not specified for /tmp/file and it could not be obtained automatically.  It has been set to 0.
The number of heads was not specified for /tmp/file and it could not be obtained automatically.  It has been set to 0.
Cluster size has been automatically set to 4096 bytes.
To boot from a device, Windows needs the 'partition start sector', the 'sectors per track' and the 'number of heads' to be set.
Windows will not be able to boot from this device.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

분명히 파일 작업을 좋아하지 않았습니다. :) 걱정하지 마세요. 실제 디스크에서 작업할 때 대부분의 값을 자동으로 감지합니다. 이 "파일"도 파일 시스템으로 잘 작동합니다.

# mount -t ntfs-3g /tmp/file /mnt
# touch "/mnt/a file in mnt"
# ls -l /mnt
total 0
-rwxrwxrwx 1 root root 0 Aug 29 06:43 a file in mnt
# umount /mnt
# ls -l /mnt
total 0

(이상한 권한이 보이나요?)


노트:

  1. sudo나는 아직 이 답변에서 아무데도 사용하지 않았습니다 . 나는 파일과 내가 소유한 파일을 작업하고 있었기 때문에 sudo. parted이에 대해 경고할 것입니다. 일반적으로 항상 가 소유하는 블록 장치의 경우 root가 필요합니다 (또는 또는 를 sudo통해 루트 셸을 사용해야 함 ).sudo -isudo su -
  2. partedGNU 프로그램이며 많은 GNU 프로그램과 마찬가지로 해당 info형식에 대한 광범위한 문서가 있습니다. parted-doc( )을 설치 sudo apt-get install parted-doc한 후 를 실행합니다 info parted. 다음을 결제할 수도 있습니다.온라인 사용자 설명서.
  3. mkfsGParted는 적절한 프로그램을 직접 호출하므로 파티션을 NTFS로 포맷할 수 있습니다 ( mkntfs이 경우 는 mkfs.ntfs에 대한 링크일 뿐입니다 mkntfs). 또한 여러 매개변수를 설정합니다. 실제로 대부분의 작업에서 GParted 메시지의 세부 정보를 검사하여 어떤 명령이 실행되었는지 확인할 수 있습니다.
  4. GPT와 MBR/MSDOS 파티션 테이블의 장점을 다루지는 않겠지만 GPT는 UEFI가 있는 새 장치, 특히 Windows 8이 설치된 장치에서 발견될 가능성이 높습니다.파티셔닝 도구의 상태는 무엇입니까?GPT에 직면한 경우 사용할 수 있는 도구에 대해 설명합니다.
  5. LVM, ZFS 및 btrfs는 완전히 다른 게임입니다. 이들 모두에는 함께 제공되는 도구가 있으므로 parted또는 대신에 이를 사용해야 합니다 fdisk(사용할 파티션을 생성하는 초기 단계는 제외).

parted사용법 에 대한 참고 사항 :

프로그램 의 구문은 다음 parted과 같습니다.

parted [options] [device [command [options...]...]]

parted다음과 같이 명령 없이 실행하는 경우 :

parted /tmp/parted

위의 명령을 실행할 수 있는 간단한 셸이 표시됩니다. 그러나 이러한 명령은 프로그램을 사용하여 직접 실행할 수도 있습니다 parted. 따라서 이 세 가지는 동일합니다.

# parted /tmp/parted
GNU Parted 2.3
Using /tmp/parted
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt

그리고

# parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /tmp/parted
Using /tmp/parted
(parted) mklabel gpt

그리고

parted /tmp/parted mklabel gpt

또한 를 사용하여 파티션을 생성할 때 parted파티션 끝을 나타내는 유용한 표시는 다음과 같습니다 -1s(하이픈과 "s" 사이에 "1"임). 이는 파티션을 지정된 시작 부분부터 디스크의 나머지 부분까지 확장하려는 경우에 유용합니다. 좀 더 구체적으로 말하면 달리기

parted /dev/sda -- mkpart primary ext4 3G -1s

/dev/sda3G에서 시작하여 디스크의 마지막 섹터에서 끝나는 파티션을 생성합니다 /dev/sda(즉, 3G에서 디스크의 나머지 전체에 걸쳐 있음). 잘못된 옵션으로 해석되지 않도록 이 옵션이 --필요하다는 점에 유의하세요 .1s

답변2

먼저 fdisk 유틸리티를 사용하여 실제로 하드 드라이브를 분할하는 방법을 알아보세요.

Linux에서는 기본 파티션을 4개만 허용합니다. 기본 파티션 중 하나를 세분화하면 훨씬 더 많은 수의 논리 파티션을 가질 수 있습니다.

기본 파티션 중 하나만 세분화할 수 있습니다.

fdisk는 명령 프롬프트에 root fdisk device를 입력하여 시작됩니다.

장치는 /dev/sda 또는 /dev/sdb와 같을 수 있습니다.

필요한 기본 fdisk 명령은 다음과 같습니다.

p print the partition table

n create a new partition

d delete a partition

q quit without saving changes

w write the new partition table and exit

파티션 테이블에 대한 변경 사항은 쓰기(w) 명령을 실행할 때까지 적용되지 않습니다.

다음은 샘플 파티션 테이블입니다.

Disk /dev/sdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdb1   *         1       184    370912+  83  Linux
/dev/sdb2           185       368    370944   83  Linux
/dev/sdb3           369       552    370944   83  Linux
/dev/sdb4           553       621    139104   82  Linux swap

예:

쉘 프롬프트에서 fdisk를 시작하십시오:

sudo su
fdisk /dev/sdb 

이는 SATA 컨트롤러에서 두 번째 드라이브를 사용하고 있음을 나타냅니다.

Command (m for help): p

Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

That makes for 384Mb per partition. 
Now You get to work.


Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-621, default 1):<RETURN>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-621, default 621): +384M

Next, You set up the partition You want to use for swap:


Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (197-621, default 197):<RETURN>
Using default value 197
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): +128M

이제 파티션 테이블은 다음과 같습니다.

 Device Boot      Start       End    Blocks   Id  System
/dev/sdb1             1       196    395104   83  Linux
/dev/sdb2           197       262    133056   83  Linux

마지막으로 첫 번째 파티션을 부팅 가능하게 만듭니다.

Command (m for help): a
Partition number (1-4): 1

And You make the second partition of type swap:


Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)      
Command (m for help): p

최종 결과:

Disk /dev/sdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdb1   *         1       196    395104+  83  Linux
/dev/sdb2           197       262    133056   82  Linux swap

마지막으로 쓰기 명령(w)을 실행하여 디스크에 테이블을 씁니다.


mkfs 유틸리티는 Linux 시스템에서 파일 시스템(ext2, ext3, ext4 등)을 만드는 데 사용됩니다.

파일 시스템이 생성될 mkfs에 장치 이름을 지정해야 합니다.

사용 가능한 파일 시스템 빌더 명령 보기

파일 시스템 빌더(mkfs* 명령)는 일반적으로 /sbin/, /sbin/fs, /sbin/fs.d, /etc/fs 및 /etc와 같은 디렉토리에서 검색됩니다.

찾을 수 없으면 마지막으로 PATH 변수에서 찾은 디렉터리를 검색합니다.

다음 목록은 시스템에서 사용 가능한 mkfs* 명령을 보여줍니다.

sudo su
cd /sbin
ls mkfs*

mkfs  mkfs.bfs  mkfs.cramfs  mkfs.ext2  mkfs.ext3  mkfs.ext4  mkfs.ext4dev  
mkfs.minix  mkfs.msdos  mkfs.ntfs  mkfs.vfat

특정 장치에 파일 시스템 구축

mkfs 명령을 사용하여 파일 시스템을 구축하려면 아래와 같이 필수 인수는 device-filename 및 filesystem-type입니다.

다음 예에서는 /dev/sdb1 파티션에 ext4 파일 시스템을 생성합니다.

sudo su
mkfs -t ext4 /dev/sdb1 

mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1120112 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

mkfs 명령의 기본 파일 시스템 유형은 ext2입니다.

-t 옵션을 지정하지 않으면 ext2 파일 시스템이 생성됩니다.

또한 앞서 설명한 방법을 사용하여 ext2, ext3 또는 ext4 파일 시스템이 있는지 확인할 수 있습니다.


NTFS 드라이브 포맷

먼저 NTFS 파일 시스템을 생성하는 기능이 필요하므로 ntfsprogs를 설치하십시오.

sudo su 
apt-get install ntfs-3g

둘째, 파티션을 없애고 NTFS로 다시 만듭니다.

sudo su 
umount /dev/sdb1
fdisk /dev/sdb

Options to select:

    ‘d’ to delete the partition
    ‘n’ to create a new partition
    ‘p’ for primary
    ‘1’ for partition number
    ‘Enter’ for first cylinder (default 1)
    ‘Enter’ for last cylinder (default of max size)
    ‘t’ for type
    ‘L’ to list codes, and enter code for HPFS/NTFS. In my case, it’s ‘7’
    ‘w’ to write changes to disk, and exit

umount /dev/sdb1

마지막 단계에서는 Ubuntu가 자동으로 파티션을 다시 마운트했기 때문에 파티션을 마운트 해제합니다.

이제 파일 시스템을 생성해야 합니다. 이를 해결하는 방법에는 두 가지가 있습니다. 즉, 조급한 방법(빠른 형식) 또는 더 좋지만 훨씬 더 긴 방법(전체 형식)입니다.

빠른 포맷

이는 디스크 공간만 할당할 뿐 드라이브를 0으로 만들거나 불량 섹터를 확인하지는 않습니다. 즉, 몇 초 정도 걸립니다.

sudo su 
mkfs.ntfs -f /dev/sdb1

전체 형식

데이터 무결성에 대해 훨씬 더 관심이 있고 기다릴 여유가 없다면 전체 형식을 수행하십시오.

대용량 드라이브를 제로화하는 데 몇 시간이 걸릴 수 있습니다!

sudo su 
mkfs.ntfs /dev/sdb1

관련 정보