ILD

disk partition, filesystem, mounting
作者:YUAN JIANPENG 邮箱:yuanjp@hust.edu.cn
发布时间:2018-9-8 站点:Inside Linux Development

一个磁盘,要想能正常使用,需要经过3个步骤:

创建分区表

创建文件系统

挂载文件系统


Partition Table

有两种主要的分区表MBR和GPT。

Master Boot Record (MBR) disks use the standard BIOS partition table. GUID Partition Table (GPT) disks use Unified Extensible Firmware Interface (UEFI). One advantage of GPT disks is that you can have more than four partitions on each disk. GPT is also required for disks larger than two terabytes (TB).


使用fdisk工具管理分区表:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$ sudo fdisk /dev/sdc
 
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
 
Command (m for help): m
 
Help:
 
  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition
 
  Misc
   m   print this menu
   x   extra functionality (experts only)
 
  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file
 
  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes
 
  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


使用g创建GPT分区表,使用o创建DOS分区表,使用n创建新的分区。


partition type是分区的类型,在fdisk中使用l命令,列出所有的分区类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Command (m for help): l
  1 EFI System                     C12A7328-F81F-11D2-BA4B-00A0C93EC93B
  2 MBR partition scheme           024DEE41-33E7-11D3-9D69-0008C781F39F
  3 Intel Fast Flash               D3BFE2DE-3DAF-11DF-BA40-E3A556D89593
  4 BIOS boot                      21686148-6449-6E6F-744E-656564454649
  5 Sony boot partition            F4019732-066E-4E12-8273-346C5641494F
  6 Lenovo boot partition          BFBFAFE7-A34F-448A-9A5B-6213EB736C22
  7 PowerPC PReP boot              9E1A2D38-C612-4316-AA26-8B49521E5A8B
  8 ONIE boot                      7412F7D5-A156-4B13-81DC-867174929325
  9 ONIE config                    D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149
 10 Microsoft reserved             E3C9E316-0B5C-4DB8-817D-F92DF00215AE
 11 Microsoft basic data           EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
 12 Microsoft LDM metadata         5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
 13 Microsoft LDM data             AF9B60A0-1431-4F62-BC68-3311714A69AD
 14 Windows recovery environment   DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
 15 IBM General Parallel Fs        37AFFC90-EF7D-4E96-91C3-2D7AE055B174
 16 Microsoft Storage Spaces       E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D
 17 HP-UX data                     75894C1E-3AEB-11D3-B7C1-7B03A0000000
 18 HP-UX service                  E2A1E728-32E3-11D6-A682-7B03A0000000
 19 Linux swap                     0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
 20 Linux filesystem               0FC63DAF-8483-4772-8E79-3D69D8477DE4
 21 Linux server data              3B8F8425-20E0-4F3B-907F-1A25A76F98E8
 22 Linux root (x86)               44479540-F297-41B2-9AF7-D131D5F0458A
 23 Linux root (ARM)               69DAD710-2CE4-4E3C-B16C-21A1D49ABED3
 24 Linux root (x86-64)            4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709
 25 Linux root (ARM-64)            B921B045-1DF0-41C3-AF44-4C6F280D3FAE
 26 Linux reserved                 8DA63339-0007-60C0-C436-083AC8230908
 27 Linux home                     933AC7E1-2EB4-4F13-B844-0E14E2AEF915
 28 Linux RAID                     A19D880F-05FC-4D3B-A006-743F0F84911E
 29 Linux extended boot            BC13C2FF-59E6-4262-A352-B275FD6F7172
 30 Linux LVM                      E6D6D379-F507-44C2-A23C-238F2A3DF928
 31 FreeBSD data                   516E7CB4-6ECF-11D6-8FF8-00022D09712B
 32 FreeBSD boot                   83BD6B9D-7F41-11DC-BE0B-001560B84F0F
 33 FreeBSD swap                   516E7CB5-6ECF-11D6-8FF8-00022D09712B
 34 FreeBSD UFS                    516E7CB6-6ECF-11D6-8FF8-00022D09712B
 35 FreeBSD ZFS                    516E7CBA-6ECF-11D6-8FF8-00022D09712B
 36 FreeBSD Vinum                  516E7CB8-6ECF-11D6-8FF8-00022D09712B
 37 Apple HFS/HFS+                 48465300-0000-11AA-AA11-00306543ECAC
 38 Apple UFS                      55465300-0000-11AA-AA11-00306543ECAC
 39 Apple RAID                     52414944-0000-11AA-AA11-00306543ECAC
 40 Apple RAID offline             52414944-5F4F-11AA-AA11-00306543ECAC
 41 Apple boot                     426F6F74-0000-11AA-AA11-00306543ECAC
 42 Apple label                    4C616265-6C00-11AA-AA11-00306543ECAC
 43 Apple TV recovery              5265636F-7665-11AA-AA11-00306543ECAC
 44 Apple Core storage             53746F72-6167-11AA-AA11-00306543ECAC
 45 Solaris boot                   6A82CB45-1DD2-11B2-99A6-080020736631
 46 Solaris root                   6A85CF4D-1DD2-11B2-99A6-080020736631
 47 Solaris /usr & Apple ZFS       6A898CC3-1DD2-11B2-99A6-080020736631
 48 Solaris swap                   6A87C46F-1DD2-11B2-99A6-080020736631
 49 Solaris backup                 6A8B642B-1DD2-11B2-99A6-080020736631
 50 Solaris /var                   6A8EF2E9-1DD2-11B2-99A6-080020736631
 51 Solaris /home                  6A90BA39-1DD2-11B2-99A6-080020736631
 52 Solaris alternate sector       6A9283A5-1DD2-11B2-99A6-080020736631
 53 Solaris reserved 1             6A945A3B-1DD2-11B2-99A6-080020736631
 54 Solaris reserved 2             6A9630D1-1DD2-11B2-99A6-080020736631
 55 Solaris reserved 3             6A980767-1DD2-11B2-99A6-080020736631
 56 Solaris reserved 4             6A96237F-1DD2-11B2-99A6-080020736631
 57 Solaris reserved 5             6A8D2AC7-1DD2-11B2-99A6-080020736631
 58 NetBSD swap                    49F48D32-B10E-11DC-B99B-0019D1879648
 59 NetBSD FFS                     49F48D5A-B10E-11DC-B99B-0019D1879648
 60 NetBSD LFS                     49F48D82-B10E-11DC-B99B-0019D1879648
 61 NetBSD concatenated            2DB519C4-B10E-11DC-B99B-0019D1879648
 62 NetBSD encrypted               2DB519EC-B10E-11DC-B99B-0019D1879648
 63 NetBSD RAID                    49F48DAA-B10E-11DC-B99B-0019D1879648
 64 ChromeOS kernel                FE3A2A5D-4F32-41A7-B725-ACCC3285A309
 65 ChromeOS root fs               3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC
 66 ChromeOS reserved              2E0A753D-9E48-43B0-8337-B15192CB1B5E
 67 MidnightBSD data               85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7
 68 MidnightBSD boot               85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7
 69 MidnightBSD swap               85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7
 70 MidnightBSD UFS                0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7
 71 MidnightBSD ZFS                85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7
 72 MidnightBSD Vinum              85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7
 73 Ceph Journal                   45B0969E-9B03-4F30-B4C6-B4B80CEFF106
 74 Ceph Encrypted Journal         45B0969E-9B03-4F30-B4C6-5EC00CEFF106
 75 Ceph OSD                       4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D
 76 Ceph crypt OSD                 4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D
 77 Ceph disk in creation          89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE
 78 Ceph crypt disk in creation    89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE
 79 OpenBSD data                   824CC7A0-36A8-11E3-890A-952519AD3F61
 80 QNX6 file system               CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1
 81 Plan 9 partition               C91818F9-8025-47AF-89D2-F030D7000C2C


在linux中,我们使用20 Linux Filesystem分区类型。


使用fdisk创建分区后,/dev下将显示分区的设备:

1
2
$ ls /dev/sdc*
/dev/sdc  /dev/sdc1


如上/dev/sdc是磁盘的设备文件,sdc1是分区1的设备文件。


Filesystem

分区上建立文件系统,来管理文件,使用mkfs.ext4来创建文件系统:

1
$ sudo mkfs.ext4 /dev/sdc1


注意 partion type 和 filesystem type的区别。


Mounting

创建文件系统后,可以挂载到一个挂载点。

1
sudo mount -t ext4 /dev/sdc1 /work2


要想在开机的时候,自动挂载,给/etc/fstab添加一行:

1
UUID=03a6666b-b88e-402a-88db-2975aa855e05 /work2        ext4 defaults 0 2


其中UUID而不使用/dev/sdc1,是避免添加删除磁盘导致编号变动。


使用blkid来查看磁盘的UUID

1
2
3
4
5
6
7
8
9
10
$ sudo blkid -p /dev/sdc1
/dev/sdc1: UUID="03a6666b-b88e-402a-88db-2975aa855e05" 
VERSION="1.0" TYPE="ext4" USAGE="filesystem" 
PART_ENTRY_SCHEME="gpt" 
PART_ENTRY_UUID="117bd91e-b3b2-4fa4-8e07-ab848e9d7269" 
PART_ENTRY_TYPE="0fc63daf-8483-4772-8e79-3d69d8477de4" 
PART_ENTRY_NUMBER="1" 
PART_ENTRY_OFFSET="2048" 
PART_ENTRY_SIZE="976771087" 
PART_ENTRY_DISK="8:32"


Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.