터미널에서 저장 드라이브를 포맷하는 방법을 알고 싶습니다. 답변에 제공해야 할 유용한 사항은 향후 용도를 추정하는 데 사용할 수 있는 명령 및 기본 지식에 대한 옵션으로 자주 사용되는 것입니다. 특히 NTFS, FAT32, EXT4 등과 같은 다양한 파일 시스템에서 포맷하는 방법을 알고 싶습니다. 터미널을 통해 드라이브를 분할하는 방법에 대한 정보도 필요합니다.
터미널에서 대용량 외장 하드 드라이브(EHDD)를 NTFS로 포맷하려고 합니다.
다른 GUI 프로그램뿐만 아니라 이 프로그램에도 gparted를 사용할 수 있다는 것을 알고 있지만 여전히 터미널에서 이를 수행하는 방법을 알고 싶습니다.
답변1
사용 가능한 몇 가지 옵션이 있습니다.
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.fat
mkfs.minix
mkfs.msdos
mkfs.ntfs
mkfs.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
(이상한 권한이 보이나요?)
노트:
sudo
나는 아직 이 답변에서 아무데도 사용하지 않았습니다 . 나는 파일과 내가 소유한 파일을 작업하고 있었기 때문에sudo
.parted
이에 대해 경고할 것입니다. 일반적으로 항상 가 소유하는 블록 장치의 경우root
가 필요합니다 (또는 또는 를sudo
통해 루트 셸을 사용해야 함 ).sudo -i
sudo su -
parted
GNU 프로그램이며 많은 GNU 프로그램과 마찬가지로 해당info
형식에 대한 광범위한 문서가 있습니다.parted-doc
( )을 설치sudo apt-get install parted-doc
한 후 를 실행합니다info parted
. 다음을 결제할 수도 있습니다.온라인 사용자 설명서.mkfs
GParted는 적절한 프로그램을 직접 호출하므로 파티션을 NTFS로 포맷할 수 있습니다 (mkntfs
이 경우 는mkfs.ntfs
에 대한 링크일 뿐입니다mkntfs
). 또한 여러 매개변수를 설정합니다. 실제로 대부분의 작업에서 GParted 메시지의 세부 정보를 검사하여 어떤 명령이 실행되었는지 확인할 수 있습니다.- GPT와 MBR/MSDOS 파티션 테이블의 장점을 다루지는 않겠지만 GPT는 UEFI가 있는 새 장치, 특히 Windows 8이 설치된 장치에서 발견될 가능성이 높습니다.파티셔닝 도구의 상태는 무엇입니까?GPT에 직면한 경우 사용할 수 있는 도구에 대해 설명합니다.
- 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/sda
3G에서 시작하여 디스크의 마지막 섹터에서 끝나는 파티션을 생성합니다 /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