当前位置: 代码网 > 服务器>服务器>Linux > Linux磁盘分区、格式化和挂载方式

Linux磁盘分区、格式化和挂载方式

2025年01月11日 Linux 我要评论
一、磁盘分区表分类linux中想使用磁盘的步骤和windows一样加硬盘->分区->格式化->挂载#通过命令行方式对磁盘进行分区(两种方式,第一种就是mbr,第二种就是gpt)如果想

一、磁盘分区表分类

linux中想使用磁盘的步骤和windows一样

加硬盘->分区->格式化->挂载

#通过命令行方式对磁盘进行分区(两种方式,第一种就是mbr,第二种就是gpt)

如果想采用mbr(master boot record)的方式进行分区就使用fdisk命令

mbr特征:

  • 较旧的分区表格式,仅支持最多4个主分区(或者3个主分区加一个扩展分区)。
  • 支持的最大磁盘容量为2tb。
  • 常用于较旧的bios启动系统。
  • mbr的结构较简单,但不如gpt可靠。

如果想采用gpt(guid partition table)的方式进行分区就使用gdisk命令

gpt特征:

  • 现代的分区表格式,支持超过2tb的磁盘容量。
  • 支持最多128个主分区。
  • 具有更强的冗余功能,可以存储多个备份的分区表。
  • 必须使用uefi(unified extensible firmware interface)启动。

1、手动创建分区(效率太低)

2、自动创建分区(有一定的操作性)

# 查看当前所有磁盘的分区情况
[server root ~] # fdisk -l


# 查看当前模块硬盘的分区情况
[server root ~] # fdisk -l /dev/sdb
disk /dev/sdb: 21.5 gb, 21474836480 bytes, 41943040 sectors

一个sectors等于512b
[server root ~] # fdisk -l

disk /dev/sda: 42.9 gb, 42949672960 bytes, 83886080 sectors
units = sectors of 1 * 512 = 512 bytes
sector size (logical/physical): 512 bytes / 512 bytes
i/o size (minimum/optimal): 512 bytes / 512 bytes
disk label type: dos
disk identifier: 0x000e1369

   device boot      start         end      blocks   id  system
/dev/sda1   *        2048     1050623      524288   83  linux
/dev/sda2         1050624     9439231     4194304   82  linux swap / solaris
/dev/sda3         9439232    83886079    37223424   83  linux

disk /dev/sdb: 21.5 gb, 21474836480 bytes, 41943040 sectors
units = sectors of 1 * 512 = 512 bytes
sector size (logical/physical): 512 bytes / 512 bytes
i/o size (minimum/optimal): 512 bytes / 512 bytes

[server root ~] # fdisk -l /dev/sdb 

disk /dev/sdb: 21.5 gb, 21474836480 bytes, 41943040 sectors
units = sectors of 1 * 512 = 512 bytes
sector size (logical/physical): 512 bytes / 512 bytes
i/o size (minimum/optimal): 512 bytes / 512 bytes

[server root ~] # 

二、fdisk命令创建分区

对于服务器来说,磁盘从使用目的来说分为三种,

  • 第一种是用来存放操作系统的,此类硬盘一个只存放操作系统以及配置文件,剩下的任何数据都不应该主动存放在此硬盘中。
  • 第二种磁盘是用来存放本地大文件,一般这种磁盘叫做本地存储盘。
  • 第三种磁盘是用来存放本地大文件,而是使用了网络存储(san->storage area network),一般这种磁盘叫做网络存储

1、交互式的命令

[server root ~] # fdisk /dev/sdb
[server root ~] # fdisk /dev/sdb
welcome to fdisk (util-linux 2.23.2).

changes will remain in memory only, until you decide to write them.
be careful before using the write command.

device does not contain a recognized partition table
building a new dos disklabel with disk identifier 0x0f1f0bcc.

command (m for help): q(quit 不保存的)

[server root ~] # fdisk /dev/sdb 
welcome to fdisk (util-linux 2.23.2).

changes will remain in memory only, until you decide to write them.
be careful before using the write command.

device does not contain a recognized partition table
building a new dos disklabel with disk identifier 0x57ae1208.

command (m for help): w(write 保存)
the partition table has been altered!

calling ioctl() to re-read partition table.
syncing disks.
[server root ~] # 

2、分区主分区

对/dev/sdb磁盘进行分区,如果分了四个主分区后,还有剩余空间,那就没法进行额外分区了,如下:

[server root ~] # fdisk /dev/sdb 
welcome to fdisk (util-linux 2.23.2).

changes will remain in memory only, until you decide to write them.
be careful before using the write command.

device does not contain a recognized partition table
building a new dos disklabel with disk identifier 0x05cc5d51.

command (m for help): m
command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition(删除一个分区)
   g   create a new empty gpt partition table
   g   create an irix (sgi) partition table
   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)

command (m for help): 

command (m for help): n
partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
select (default p): p
partition number (1-4, default 1): 
first sector (2048-41943039, default 2048): 
using default value 2048
last sector, +sectors or +size{k,m,g} (2048-41943039, default 41943039): +5g
partition 1 of type linux and of size 5 gib is set

command (m for help): w
the partition table has been altered!

calling ioctl() to re-read partition table.
syncing disks.
[server root ~] # fdisk /dev/sdb 
welcome to fdisk (util-linux 2.23.2).

changes will remain in memory only, until you decide to write them.
be careful before using the write command.

......

command (m for help): p

disk /dev/sdb: 21.5 gb, 21474836480 bytes, 41943040 sectors
units = sectors of 1 * 512 = 512 bytes
sector size (logical/physical): 512 bytes / 512 bytes
i/o size (minimum/optimal): 512 bytes / 512 bytes
disk label type: dos
disk identifier: 0x05cc5d51

   device boot      start         end      blocks   id  system
/dev/sdb1            2048    10487807     5242880   83  linux
/dev/sdb2        10487808    12584959     1048576   83  linux
/dev/sdb3        12584960    14682111     1048576   83  linux
/dev/sdb4        14682112    16779263     1048576   83  linux

command (m for help): n
if you want to create more than four partitions, you must replace a
primary partition with an extended partition first.

# 如果要创建四个以上的分区,则必须替换首先使用扩展分区的主分区。
command (m for help): n
if you want to create more than four partitions, you must replace a
primary partition with an extended partition first.

3、创建扩展分区,然后继续创建主分区

# 需要先删除一个主分区,然后创建扩展分区,默认剩余空间都给扩展分区
[server root ~] # fdisk /dev/sdb 
welcome to fdisk (util-linux 2.23.2).

changes will remain in memory only, until you decide to write them.
be careful before using the write command.


command (m for help): d
partition number (1-4, default 4): 4
partition 4 is deleted

command (m for help): n
partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
select (default e): e
selected partition 4
first sector (14682112-41943039, default 14682112): 
using default value 14682112
last sector, +sectors or +size{k,m,g} (14682112-41943039, default 41943039): 
using default value 41943039
partition 4 of type extended and of size 13 gib is set

command (m for help): p

disk /dev/sdb: 21.5 gb, 21474836480 bytes, 41943040 sectors
units = sectors of 1 * 512 = 512 bytes
sector size (logical/physical): 512 bytes / 512 bytes
i/o size (minimum/optimal): 512 bytes / 512 bytes
disk label type: dos
disk identifier: 0x05cc5d51

   device boot      start         end      blocks   id  system
/dev/sdb1            2048    10487807     5242880   83  linux
/dev/sdb2        10487808    12584959     1048576   83  linux
/dev/sdb3        12584960    14682111     1048576   83  linux
/dev/sdb4        14682112    41943039    13630464    5  extended


# 创建扩展分区之后,就可以在创建主分区了
[server root ~] # fdisk /dev/sdb 
welcome to fdisk (util-linux 2.23.2).

changes will remain in memory only, until you decide to write them.
be careful before using the write command.


command (m for help): n
all primary partitions are in use
adding logical partition 5
first sector (14684160-41943039, default 14684160): 
using default value 14684160
last sector, +sectors or +size{k,m,g} (14684160-41943039, default 41943039): +5g
partition 5 of type linux and of size 5 gib is set

command (m for help): p

disk /dev/sdb: 21.5 gb, 21474836480 bytes, 41943040 sectors
units = sectors of 1 * 512 = 512 bytes
sector size (logical/physical): 512 bytes / 512 bytes
i/o size (minimum/optimal): 512 bytes / 512 bytes
disk label type: dos
disk identifier: 0x05cc5d51

   device boot      start         end      blocks   id  system
/dev/sdb1            2048    10487807     5242880   83  linux
/dev/sdb2        10487808    12584959     1048576   83  linux
/dev/sdb3        12584960    14682111     1048576   83  linux
/dev/sdb4        14682112    41943039    13630464    5  extended
/dev/sdb5        14684160    25169919     5242880   83  linux

4、自动创建分区

自动分区采用了重定向的方法

fdisk /dev/sdb < test

或者

fdisk /dev/sdb < test &>> /dev/null

区别:显示创建过程与不显示创建过程

# 先将需要分区大小,分区类型是主分区还是扩展分区,直接写到一个文本中,如下(注意一定要空行)
[server root ~] # vim test
n
p


+1g

n
e



w

q

# 重定向分区                                                    
[server root ~] # fdisk /dev/sdb < test
welcome to fdisk (util-linux 2.23.2).

changes will remain in memory only, until you decide to write them.
be careful before using the write command.


command (m for help): partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
select (default p): partition number (1-4, default 1): first sector (2048-41943039, default 2048): using default value 2048
last sector, +sectors or +size{k,m,g} (2048-41943039, default 41943039): partition 1 of type linux and of size 1 gib is set

command (m for help): command (m for help): partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
select (default p): partition number (2-4, default 2): first sector (2099200-41943039, default 2099200): using default value 2099200
last sector, +sectors or +size{k,m,g} (2099200-41943039, default 41943039): using default value 41943039
partition 2 of type extended and of size 19 gib is set

command (m for help): the partition table has been altered!

calling ioctl() to re-read partition table.
syncing disks.
[server root ~] # fdisk -l /dev/sdb

disk /dev/sdb: 21.5 gb, 21474836480 bytes, 41943040 sectors
units = sectors of 1 * 512 = 512 bytes
sector size (logical/physical): 512 bytes / 512 bytes
i/o size (minimum/optimal): 512 bytes / 512 bytes
disk label type: dos
disk identifier: 0x05cc5d51

   device boot      start         end      blocks   id  system
/dev/sdb1            2048     2099199     1048576   83  linux
/dev/sdb2         2099200    41943039    19921920    5  extended

注意:在 linux 中,分区大于 2tb 的硬盘时,通常需要使用 gpt(guid partition table) 分区表,因为 mbr(master boot record) 分区表只支持最多 2tb 的磁盘容量。gpt 分区表则没有这个限制,能够支持最大 9.4zb 的磁盘容量

需要安装gdisk

apt-get install gdisk # debian/ubuntu 系统
yum install gdisk # centos/rhel 系统

gdisk 相关参数

b back up gpt data to a file #备份当前的 gpt 数据到一个文件
c change a partition's name #更改某个分区的名称
d delete a partition #删除一个分区。
i show detailed information on a partition #显示某个分区的详细信息
l list known partition types #列出已知的分区类型
n add a new partition #添加一个新的分区
o create a new empty guid partition table (gpt) #创建一个新的空的 gpt 分区表
p print the partition table # 打印当前分区表的内容,显示磁盘的分区信息
q quit without saving changes #退出 gdisk
r recovery and transformation options (experts only) #恢复和转换选项。
s sort partitions #对分区进行排序。
t change a partition's type code #更改某个分区的类型
v verify disk #验证磁盘的 gpt 分区表
w write table to disk and exit #将更改后的分区表写入磁盘并退出
x extra functionality (experts only) #扩展功能,适用于高级用户,提供一些特殊的操作,如转换分区表格式等

三、格式化分区

1、linux常见文件系统格式有

ext2、ext3、ext4、xfs、btrfs和btrfs

#ext4的文件系统限制是,单个文件大小不能超过1t
#xfs的文件系统每个文件系统量最大支持8eb,单个文件可以支持16tb

2、mkfs命令格式化分区

# mkfs.ext4格式化分区/dev/sdb1
[server root ~] # mkf
mkfifo       mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.xfs     
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.minix   
[server root ~] # mkfs.ext
mkfs.ext2  mkfs.ext3  mkfs.ext4  
[server root ~] # mkfs.ext4 /dev/sdb1 
mke2fs 1.42.9 (28-dec-2013)
filesystem label=
os type: linux
block size=4096 (log=2)
fragment size=4096 (log=2)
stride=0 blocks, stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
first data block=0
maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

allocating group tables: done                            
writing inode tables: done                            
creating journal (32768 blocks): done
writing superblocks and filesystem accounting information: done 

# mkfs.xfs格式化分区/dev/sdb5
[server root ~] # mkfs.xfs /dev/sdb5 
meta-data=/dev/sdb5              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[server root ~] # 


# mkfs.ext2格式化分区/dev/sdb6
[server root ~] # mkfs.ext2 /dev/sdb6 
mke2fs 1.42.9 (28-dec-2013)
filesystem label=
os type: linux
block size=4096 (log=2)
fragment size=4096 (log=2)
stride=0 blocks, stripe width=0 blocks
393216 inodes, 1572864 blocks
78643 blocks (5.00%) reserved for the super user
first data block=0
maximum filesystem blocks=1610612736
48 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

allocating group tables: done                            
writing inode tables: done                            
writing superblocks and filesystem accounting information: done 

[server root ~] # 

四、挂载linux分区(文件系统)

1、临时挂载

  • mount 命令格式
  • mount -t 文件系统类型 文件系统所在的分区路径 文件系统的挂载点路径
  • mount -t fstypes 分区路径 挂载点路径
# 还未挂载前
[server root ~] # df -th
filesystem     type      size  used avail use% mounted on
devtmpfs       devtmpfs  900m     0  900m   0% /dev
tmpfs          tmpfs     910m     0  910m   0% /dev/shm
tmpfs          tmpfs     910m  9.5m  901m   2% /run
tmpfs          tmpfs     910m     0  910m   0% /sys/fs/cgroup
/dev/sda3      xfs        36g  3.7g   32g  11% /
/dev/sda1      xfs       509m  138m  372m  28% /boot
tmpfs          tmpfs     182m     0  182m   0% /run/user/0

# 创建挂载目录
[server root ~] # mkdir /mount-point{1..3}
[server root ~] # 
[server root ~] # ls /mount-point* -d
/mount-point1  /mount-point2  /mount-point3
[server root ~] # 

# 将三个分区进行挂载,挂载到/mount-point(1,2,3)目录下
[server root ~] # mount /dev/sdb1 /mount-point1
[server root ~] # mount /dev/sdb5 /mount-point2
[server root ~] # mount /dev/sdb6 /mount-point3
[server root ~] # 
[server root ~] # df -th
filesystem     type      size  used avail use% mounted on
devtmpfs       devtmpfs  900m     0  900m   0% /dev
tmpfs          tmpfs     910m     0  910m   0% /dev/shm
tmpfs          tmpfs     910m  9.5m  901m   2% /run
tmpfs          tmpfs     910m     0  910m   0% /sys/fs/cgroup
/dev/sda3      xfs        36g  3.7g   32g  11% /
/dev/sda1      xfs       509m  138m  372m  28% /boot
tmpfs          tmpfs     182m     0  182m   0% /run/user/0
/dev/sdb1      ext4      4.8g   20m  4.6g   1% /mount-point1
/dev/sdb5      xfs       5.0g   33m  5.0g   1% /mount-point2
/dev/sdb6      ext2      6.0g   12m  5.6g   1% /mount-point3
[server root ~] # 

2、永久挂载分区

mount命令只是临时挂载,系统重启之后就没了

如果想文件系统永久挂载,就需要把挂载信息写入到/etc/fstab。

/etc/fstab这个文件非常重要,一旦这个文件删除了,或者里边的某些行错误删除了,甚至写法错误都会导致系统无法正常启动。

# 系统重启后,挂载的分区没了
[server root ~] # reboot
connection closing...socket close.
connection closed by foreign host.

disconnected from remote host(centos) at 14:15:58.

type `help' to learn how to use xshell prompt.
[c:\~]$ 
reconnecting in 30 seconds. press any key to exit local shell.
..............................

connecting to 192.168.18.134:22...
connection established.
to escape to local shell, press 'ctrl+alt+]'.

last login: fri nov 22 09:21:41 2024 from 192.168.18.1
[server root ~] # df -th
filesystem     type      size  used avail use% mounted on
devtmpfs       devtmpfs  900m     0  900m   0% /dev
tmpfs          tmpfs     910m     0  910m   0% /dev/shm
tmpfs          tmpfs     910m  9.5m  901m   2% /run
tmpfs          tmpfs     910m     0  910m   0% /sys/fs/cgroup
/dev/sda3      xfs        36g  3.7g   32g  11% /
/dev/sda1      xfs       509m  138m  372m  28% /boot
tmpfs          tmpfs     182m     0  182m   0% /run/user/0
[server root ~] # 

编辑/etc/fstab之前,最好先备份

# 备份文件
[server root ~] # cp /etc/fstab /etc/fstab.bak
[server root ~] # ls /etc/fstab
fstab      fstab.bak  

[server root ~] # cat /etc/fstab 

#
# /etc/fstab
# created by anaconda on tue jan 16 23:35:15 2024
#
# accessible filesystems, by reference, are maintained under '/dev/disk'
# see man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
uuid=7f5b46d3-e0da-430a-97f2-2e6a19f9e4ff /                       xfs     defaults        0 0
uuid=ebaf11a7-f84f-4429-8df8-0ee0111e76e5 /boot                   xfs     defaults        0 0
uuid=48826076-975a-4d59-bf1a-5b1004e96f29 swap                    swap    defaults        0 0
# 第一列是文件系统所在的分区路径
#第二列是文件系统的挂载点
#第三列是文件系统的类型
#第四列是挂载参数
#第五列和第六列分别写0,只有在一些特殊的文件系统,后两列才需要改成非0


/dev/sdb1       /mount-point1   ext4    defaults        0 0
/dev/sdb5       /mount-point2   xfs     defaults        0 0
/dev/sdb6       /mount-point3   ext2    defaults        0 0

当fstab文件编辑完成后,需使用mount -a命令自动挂载生效。

注意:如果某个文件系统已经挂载了。且还在fstab里边被记录,那么mount -a不会将该文件卸载,再重新挂载,mount -a会自动忽略改文件系统

[server root ~] # df -th
filesystem     type      size  used avail use% mounted on
devtmpfs       devtmpfs  900m     0  900m   0% /dev
tmpfs          tmpfs     910m     0  910m   0% /dev/shm
tmpfs          tmpfs     910m  9.5m  901m   2% /run
tmpfs          tmpfs     910m     0  910m   0% /sys/fs/cgroup
/dev/sda3      xfs        36g  3.7g   32g  11% /
/dev/sda1      xfs       509m  138m  372m  28% /boot
tmpfs          tmpfs     182m     0  182m   0% /run/user/0

# mount -a命令自动挂载生效
[server root ~] # mount -a
[server root ~] # df -th
filesystem     type      size  used avail use% mounted on
devtmpfs       devtmpfs  900m     0  900m   0% /dev
tmpfs          tmpfs     910m     0  910m   0% /dev/shm
tmpfs          tmpfs     910m  9.5m  901m   2% /run
tmpfs          tmpfs     910m     0  910m   0% /sys/fs/cgroup
/dev/sda3      xfs        36g  3.7g   32g  11% /
/dev/sda1      xfs       509m  138m  372m  28% /boot
tmpfs          tmpfs     182m     0  182m   0% /run/user/0
/dev/sdb1      ext4      4.8g   20m  4.6g   1% /mount-point1
/dev/sdb5      xfs       5.0g   33m  5.0g   1% /mount-point2
/dev/sdb6      ext2      6.0g   12m  5.6g   1% /mount-point3
[server root ~] # 

重启之后挂载正常

[server root ~] # reboot

channel(socket) closed from remote host(centos) at 14:35:29.

type `help' to learn how to use xshell prompt.
[c:\~]$ 
warning! the remote ssh server rejected x11 forwarding request.

warning! the remote ssh server rejected x11 forwarding request.
last login: fri nov 22 14:36:10 2024 from 192.168.18.1
[server root ~] # df -th
filesystem     type      size  used avail use% mounted on
devtmpfs       devtmpfs  900m     0  900m   0% /dev
tmpfs          tmpfs     910m     0  910m   0% /dev/shm
tmpfs          tmpfs     910m  9.6m  901m   2% /run
tmpfs          tmpfs     910m     0  910m   0% /sys/fs/cgroup
/dev/sda3      xfs        36g  3.7g   32g  11% /
/dev/sdb5      xfs       5.0g   33m  5.0g   1% /mount-point2
/dev/sda1      xfs       509m  138m  372m  28% /boot
/dev/sdb6      ext2      6.0g   12m  5.6g   1% /mount-point3
/dev/sdb1      ext4      4.8g   20m  4.6g   1% /mount-point1
tmpfs          tmpfs     182m     0  182m   0% /run/user/0
[server root ~] # 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com