磁盘构造/msdos分区(fdisk)格式化(mkfs)和挂载

时间:2023-03-09 15:53:46
磁盘构造/msdos分区(fdisk)格式化(mkfs)和挂载

分区不是必要的,分区是与系统盘分开,防止数据丢失。

磁盘使用流程:查看磁盘(fdisk -l)---分区---格式化(创建文件系统)----挂载(自动挂载)

分区表类型:msdos(一般是系统分区) 和 gpt(一般是数据分区)

Msdos(Microsoft Disk Operating System,):最多支持4个分区,单分区最大2T.

Gpt(GUID Partition Table,其含义为“全局唯一标识磁盘分区表”):没有分区数量限制,单分区最大18EB

因msdos只支持4个分区,所以若需多个分区,可以用扩展分区.主分区分完后,其他是扩展分区,在扩展分区里区分逻辑分区,由扩展分区管理.扩展分区只能有一个,负责管理逻辑分区,不能进行格式化.主分区能当引导分区用,逻辑分区不能,其他存储数据都一样.主分区和逻辑分区可以格式化.主分区不是必须的,一般会将硬盘所有容量给扩展分区.

Msdos分区表类型:分区表信息会写在磁盘头,容量有限,故最多只支持4个分区.而在扩展分区里会记录分区表,就可以建多个逻辑分区了.一般都是分一个主分区,其他全部空间给扩展分区,然后在里面分配逻辑分区

主分区和扩展分区编号是1-4,逻辑分区时5-over...

针对新的磁盘,创建完成保存退出后,会自动更新分区表信息,故旧磁盘需partx -a device_name  (a --add )

查看磁盘:ll  /dev/sd*

查看磁盘:fdisk -l

[root@lbg ~]# ll /dev/sd*

brw-rw---- 1 root disk 8,  0 Oct  4 16:30 /dev/sda

brw-rw---- 1 root disk 8,  1 Oct  4 16:30 /dev/sda1

brw-rw---- 1 root disk 8,  2 Oct  4 16:30 /dev/sda2

brw-rw---- 1 root disk 8,  3 Oct  4 16:30 /dev/sda3

brw-rw---- 1 root disk 8, 16 Oct  4 16:30 /dev/sdb

[root@lbg udev]# fdisk -l

Disk /dev/sda: 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: 0x000c5fa7

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *      2048      821247      409600   83  Linux

/dev/sda2          821248     1230847      204800   82  Linux swap / Solaris

/dev/sda3         1230848    41943039    20356096   83  Linux

介绍说明:Disk /dev/sda: 21.5 GB, 21474836480 bytes(bytes=B代表字节,bit=b代表位), 41943040 sectors(扇区)

heads:表示磁头数。   sectors:扇区   track:磁道。cylinders:柱面。

磁盘的大小=一个柱面大小*柱面的总数=磁头数量*每个磁道上的扇区数*一个扇区大小*柱面总数

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB).操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

磁盘正在使用(有挂载就表示正在使用)不能用不同的方式分区,需先卸载(umount).但用同一种分区方法时,当前设备是否在用不受影响.

查看文件系统磁盘使用情况: df  -Th  (-T  type  -h  human-readable)

[root@lbg udev]# df -Th

Filesystem     Type      Size  Used Avail Use% Mounted on

/dev/sda3      xfs        20G  3.3G   17G  17% /

devtmpfs       devtmpfs  478M     0  478M   0% /dev

tmpfs          tmpfs     493M     0  493M   0% /dev/shm

/dev/sr0       iso9660   4.3G  4.3G     0 100% /mnt/rhel

/dev/sda1      xfs       397M  146M  251M  37% /boot

磁盘分区步骤:

[root@lbg ~]# fdisk -l   
     
 --显示已格式化的磁盘

[root@lbg ~]# ll /dev/sd*   
    ---显示所有磁盘

通过上面两个命令的对比可查看没有分区的磁盘。

对sdb分区:   fdisk
  /dev/sdb

其中:d(删除分区)  n(添加分区) p(打印现有分区表) q(退出不保存) w(保存并退出)

m 帮助(menu)

n  创建分区(new
partition)

p  分区表信息(partition
table)

q  quit

w  write

d-> delete

l--> 列出已知分区类型

Command (m for help): n   
     
  --添加分区

Partition type:


 primary (0 primary, 0 extended, 4
free)


 extended

其中 extended:是扩展分区,primary 是主分区.

其中给定分区大小时:+加单位就是容量,不加单位就是用柱面算.

Select (default p): p

Partition number (1-4, default 1): 1

Last sector, +sectors or +size{K,M,G} (2048-4194303, default
4194303): +1G

Partition 1 of type Linux and of size 1 GiB is set

Device Boot 
    Start 
     
 End   
  Blocks 
 Id  System

/dev/sdb1     
   2097152 
   4194303 
   1048576 
 83  Linux

Select (default p): e   
   ----设置扩展分区,一般将剩下的所有容量都给扩展分区,故一直直接回车就行

Partition number (2-4, default 2):

First sector (2099200-4194303, default
2099200):

Using default value 2099200

Last sector, +sectors or +size{K,M,G} (2099200-4194303, default
4194303):

Using default value 4194303

Partition 2 of type Extended and of size 1023 MiB is set

Device Boot 
    Start 
     
 End   
  Blocks 
 Id  System

/dev/sdb1     
     
2048   
 2099199   
 1048576 
 83  Linux

/dev/sdb2     
   2099200 
   4194303 
   1047552 
  5  Extended

Command (m for help): n   
   ----再添加新的分区--逻辑分区

Partition type:


 primary (1 primary, 1 extended, 2
free)


 logical (numbered from 5) 
     
     
  -----有了扩展分区后,再分区就有逻辑分区

Adding logical partition 5

First sector (2101248-4194303, default
2101248):

Last sector, +sectors or +size{K,M,G} (2101248-4194303, default
4194303): +500M

Partition 5 of type Linux and of size 500 MiB is set

Device Boot 
    Start 
     
 End   
  Blocks 
 Id  System

/dev/sdb1     
     
2048   
 2099199   
 1048576 
 83  Linux

/dev/sdb2     
   2099200 
   4194303 
   1047552 
  5  Extended

/dev/sdb5     
   2101248 
   3125247 
    512000 
 83  Linux

刷新分区表:partx -a /dev/sdb

查看分区命令 fdisk -l
/dev/sdb(从内存看) 与 fdisk
/dev/sdb(从磁盘里看) p查看的结果不同的话,用 partx -a
/dev/sdb (刷新分区表a--add).不一致的原因可能是旧磁盘以前有分区表.

格式化步骤:

mkfs命令(make file
system)格式化就是创建文件系统。(文件系统类型:6里ext4 ,7里xfs )

一个分区一个分区地格式化:

mkfs.ext4  /dev/sdb1  或者 mkfs -t ext4
 /dev/sdb1   
     
     
     
    ---
(t--type)

创建文件系统相当于在物理分区制作了一层内容,用来记录文件的存放位置等等这些信息。你会发现创建了文件系统的磁盘你还没用空间就少了十几M,,就是这个原因.

判断格式化是否成功:

格式化后就可查看该块设备信息:blkid, 有了该设备就说明格式化成功.没格式化的不在其中显示.(blkid指block的id)

[root@lbg ~]# blkid

/dev/sda1: UUID="83d6abb5-1bda-497d-a33e-f11e601a6ff0"
TYPE="xfs"

/dev/sda2: UUID="957ffd57-d1fc-40d5-87c2-5f57f15d6a11"
TYPE="swap"

/dev/sda3: UUID="37765c8e-208a-4358-b643-7beeca05683c"
TYPE="xfs"

/dev/sdb1: UUID="3c914c37-dc34-4fcf-932d-f4ea7753d2dc"
TYPE="xfs"

/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64"
TYPE="iso9660" PTTYPE="dos"

挂载:

创建空目录然后挂载mount /dev/sdb1
 /mnt/cs (手动挂载临时生效,重启失效.)

再红帽系统里有lost+found 文件夹说明挂载成功.或者直接mount查看是否挂载成功。

设置开机自动挂载:

挂载的本质是挂载设备上的文件系统,将挂载命令写到下面两种配置文件都可:

[root@lbg rhel]# vim /etc/rc.d/rc.local

[root@lbg rhel]# vim /etc/fstab

/etc/rc.d/rc.local是操作系统启动最后一个读取的脚本文件,操作系统基本已经启动了,命令写在这里面,可以开机自动挂载.开机挂载,能挂,但是不太合适,可以在这里挂载镜像,挂载磁盘,可能启动软件需要的服务需要用到磁盘中的东西,这时候就不合适了.

/etc/fstab 中内容大致如下:

UUID=37765c8e-208a-4358-b643-7beeca05683c 
    / 
    xfs 
   defaults 
      0
0

UUID=83d6abb5-1bda-497d-a33e-f11e601a6ff0 
    /boot 
 xfs   
 defaults   
    0 0

UUID=957ffd57-d1fc-40d5-87c2-5f57f15d6a11 
    swap 
swap     
 defaults   
   0 0

/dev/sr0     
     
     
   /mnt/rhel 
   iso9660 
   defaults 
     0
0

依次是:设备,挂载点,文件系统类型,文件系统挂载属性(默认defaults),是否备份(写0就行),是否进行文件系统检查(写0,不检查就行,否则开机时间过长)0 ---不检查  1 ---优先度高的检查   2----优先度低的检查

其中 UUid的值可以通过blkid查看.记着后面三个 defaults 0
0 .
 /etc/fstab 里面挂载点有/boot,故开机运行时很早,专门用来做自动挂载.而/etc/rc.d/rc.local可以写很多其他命令,比如启动服务.挂载镜像.

检测/etc/fstab修改是否正确:

注意:vim
 /etc/fstab.--系统重启生效.若写错了,则系统无法正常开机,必须测,若写错了,则操作系统只能看,root用户也无法改,检测时 先 umount
/dev/sdb1再mount
-a --检测/etc/fatab是否正确.(mount -a 是自动挂载 /etc/fstab 里面的东西,若无任何报错输出则表示/etc/fstab修改无问题。)

修复文件系统:

#fsck   -a
     /dev/sdb1

#fsck   -y
     /dev/sdb1