linux 分区管理

1. 查看系统中硬盘的设备

[root@centos6 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb

可以看出,系统有两块硬盘,sda 与 sdb,sda有是三个分区。

2. 查看系统分区

[root@centos6 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3       17941936 4095324  12928548  25% /
tmpfs             514132      72    514060   1% /dev/shm
/dev/sda1         487652   32421    429631   8% /boot

或者:
[root@centos6
~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 4.0G 13G 25% / tmpfs 503M 72K 503M 1% /dev/shm /dev/sda1 477M 32M 420M 8% /boot [root@centos6 ~]#

注解:

1. 显示的只有sda硬盘的分区,因为sdb硬盘并没有分区且没有挂载到目录下。

2. 第一个命令df 显示一个 1K-blocks列,意思是,这个分区有多少个block块,一个block块是 8 * 521B,对于硬盘而言,最小单位是扇区,一个扇区是512个字节。块属于操作系统级别,操作系统在存储数据时,是一个块一个块的去存储。这样存储数据时效率高。

3. 硬盘分区

第一步:

[root@centos6 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x0b37e823.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): 

第二步:选择 n

Command (m for help): n
Command action
   e   extended                # 扩展分区
   p   primary partition (1-4) # 主分区

第三步:选择 创建 主分区(p)

p
Partition number (1-4): 

第四步:输入分区编号 1

Partition number (1-4): 1
First cylinder (1-2610, default 1): 

第五步:输入柱面 起始位置,默认为1, 默认即可,点击回车

First cylinder (1-2610, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 

第六步:输入柱面 结束位置,可以输入柱面结束位置,也可以输入分区大小,因为柱面之间的位置就是你的分区大小

输入 +5G

First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +5G

第七步:第一个分区,分区完成,按p查看

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1b5d0db0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         654     5253223+  83  Linux

Command (m for help): 

继续输入 n 新建分区

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2           # 输入分区编码
First cylinder (655-2610, default 655): # 输入柱面起始位置,不用输入,直接回车,会接着上一个区分的最后柱面位置,继续排,如上面结束时654,这次开始是655

 Using default value 655

Last cylinder, +cylinders or +size{K,M,G} (655-2610, default 2610): +5G   # 输入分区大小

Command (m for help): P    # 分区完成,按p查看

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1b5d0db0
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         654     5253223+  83  Linux
/dev/sdb2             655        1308     5253255   83  Linux

Command (m for help): 

继续输入 n 再分一个分区

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (1309-2610, default 1309): 
Using default value 1309
Last cylinder, +cylinders or +size{K,M,G} (1309-2610, default 2610): +5G

Command (m for help): P

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1b5d0db0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         654     5253223+  83  Linux
/dev/sdb2             655        1308     5253255   83  Linux
/dev/sdb3            1309        1962     5253255   83  Linux

上面已经分了3个主分区,下面分一个逻辑分区

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e                                       # 输入e 创建扩展分区
Selected partition 4
First cylinder (1963-2610, default 1963):   #  这里直接回车 回车,表示将剩余的空间,全部分给扩展分区。
Using default value 1963
Last cylinder, +cylinders or +size{K,M,G} (1963-2610, default 2610): 
Using default value 2610

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1b5d0db0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         654     5253223+  83  Linux
/dev/sdb2             655        1308     5253255   83  Linux
/dev/sdb3            1309        1962     5253255   83  Linux
/dev/sdb4            1963        2610     5205060    5  Extended     #  扩展区分

Command (m for help): 

以上扩展分区创建完成,扩展分区是不能使用,即不能就进行文件存储,需要在扩展区分的基础上创建逻辑分区。

继续...

Command (m for help): n
First cylinder (1963-2610, default 1963): 
Using default value 1963
Last cylinder, +cylinders or +size{K,M,G} (1963-2610, default 2610): +1G

Command (m for help): P

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1b5d0db0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         654     5253223+  83  Linux
/dev/sdb2             655        1308     5253255   83  Linux
/dev/sdb3            1309        1962     5253255   83  Linux
/dev/sdb4            1963        2610     5205060    5  Extended
/dev/sdb5            1963        2094     1060258+  83  Linux

Command (m for help): 

这里看一下,/dev/sdb5 这个分区的起始位置 是扩展分区起始位置一致,都为1963,因为扩展分区就是一个逻辑概念,不占用空间。

继续创建扩展分区

Command (m for help): n
First cylinder (2095-2610, default 2095): 
Using default value 2095
Last cylinder, +cylinders or +size{K,M,G} (2095-2610, default 2610): +1G

Command (m for help): P

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1b5d0db0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         654     5253223+  83  Linux
/dev/sdb2             655        1308     5253255   83  Linux
/dev/sdb3            1309        1962     5253255   83  Linux
/dev/sdb4            1963        2610     5205060    5  Extended
/dev/sdb5            1963        2094     1060258+  83  Linux
/dev/sdb6            2095        2226     1060258+  83  Linux

Command (m for help): /dev/sdb5

继续...

Command (m for help): n
First cylinder (2227-2610, default 2227): 
Using default value 2227
Last cylinder, +cylinders or +size{K,M,G} (2227-2610, default 2610):  # 直接回车 回车 将剩余的空间全部分给这个分区
Using default value 2610

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1b5d0db0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         654     5253223+  83  Linux
/dev/sdb2             655        1308     5253255   83  Linux
/dev/sdb3            1309        1962     5253255   83  Linux
/dev/sdb4            1963        2610     5205060    5  Extended
/dev/sdb5            1963        2094     1060258+  83  Linux
/dev/sdb6            2095        2226     1060258+  83  Linux
/dev/sdb7            2227        2610     3084448+  83  Linux

Command (m for help): 

第八步:分区完成之后 按 w 保存

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

最后 输入命令:partprobe 跟新分区列表

[root@centos6 ~]# partprobe
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (设备或资源忙).  As a result, it may not reflect all of your changes until after reboot.
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
Error: 无效的分区表 - /dev/sr0 出现递归分区。
[root@centos6 ~]# 

最后查看你的分区情况

如果不显示,重启系统

[root@centos6 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb3  /dev/sdb4  /dev/sdb5  /dev/sdb6  /dev/sdb7

4. 格式化分区,制作文件系统

磁盘分区之后,并不能使用,需要将分区格式化,格式化的过程是为分区写入文件系统。

[root@centos6 ~]# mkfs.ext4 /dev/sdb3
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
328656 inodes, 1313313 blocks
65665 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1346371584
41 block groups
32768 blocks per group, 32768 fragments per group
8016 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736

正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@centos6 ~]# 

将建的分区一 一格式化,扩展分区不需要格式化

5. 挂载

将格式化的分区挂载的目录下,分区才能被真正使用,进行文件读写。

挂载定义: 建立分区与目录映射关系的过程。

[root@centos6 /]# mount /dev/sdb2 /s2
[root@centos6 /]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3       17941936 4095632  12928240  25% /
tmpfs             514132      72    514060   1% /dev/shm
/dev/sda1         487652   32421    429631   8% /boot
/dev/sdb2        5039624   10264   4766700   1% /s2

卸载:

[root@centos6 /]# umount /s2
[root@centos6 /]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3       17941936 4095632  12928240  25% /
tmpfs             514132      72    514060   1% /dev/shm
/dev/sda1         487652   32421    429631   8% /boot
 umount -l /s2    # 强制卸载

6. 设置开始自动挂载 

上面分区挂载到对应的目录下之后,如果系统重启,系统就会将挂载取消,因此可以设计开始时,自动挂载

vim /etc/fstab 
在/etc/fstab 增加一行

/dev/sdb1               /test                   ext4    defaults        0 0

7. 思考

例如,

[root@centos6 /]# cd /opt
[root@centos6 opt]# ls
rh
[root@centos6 opt]# touch a.txt
[root@centos6 opt]# ls /opt
a.txt  rh

touch a.txt 的过程,文件到底存放到哪去了?

系统会找其父目录opt有没有映射原设备,如果没有找opt的上一级目录 / 有没有源设备,而 / 挂载的 /dev/sda3 分区下,那么a.txt 就存放到 /dev/sda3 这个源设备下(分区)。看样子文件都存放在目录下,其实都是存放在目录对应的源设备下。

如果opt有源设备,那么文件就存放在opt对应的源设备下。

那么 ls /opt 显示的就是 optt对应的源设备下 或者 / 对应的源设备下的内容

原文地址:https://www.cnblogs.com/yuqiangli0616/p/9787830.html