linux初始化磁盘分区表,Linux 分区、初始化、挂载

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

前言

记得上次部署在生成环境中的Solr目录突然不见了,吓得以为被我误删了,后来才知道原来部署目录所在的分区是在重启之后没有挂载上来。所以这篇主要来记录一下Linux中磁盘分区和挂载的步骤,以及过程中遇到一些的问题和想法。

磁盘分区

磁盘的分区,可以简单的想象成一个磁盘没分成了若干个大小的磁盘,类似Windows中的C/D/E盘。那么第一个问题为什么要对磁盘进行分区呢?主要有两个原因:为了安全性。拿window下的C盘来说,C盘存放系统运行所需的文件,如果要重装,C盘的数据是会被清空的。这个时候如果C盘存放着重要的文件,而又没有其他地方可以存放这个文件,那就比较苦逼了。所以可以划分出D/E/F盘来放一下,这样再重装的时候,其他分区的数据就有一定的安全性了。

是为了效率。数据分区之后,数据的读取可以只针对磁柱进行遍历。如E盘对应的柱面范围是200-400,这样读E盘的时候,可以直接定位到200号的柱面加快读取的效率。而不是从一整块盘中的慢慢来读取到相应的位置。

使用sudo fdisk -l查看Linux分区的情况1$ sudo fdisk -l

1.png

可以看到我的机器上只有一个磁盘/dev/sda ,上面显示该磁盘共有42.9G的磁盘空间,有255个磁头,每个磁道有63个扇区,共有5221个柱面。

在看下面部分,可以知道该磁盘总共被分成了三个分区。1

2

3

4设备 启动 起点 终点 块数 Id 系统

/dev/sda1 * 2048 75497471 37747712 83 Linux

/dev/sda2 75499518 83884031 4192257 5 扩展

/dev/sda5 75499520 83884031 4192256 82 Linux 交换 / Solaris

其中/sda1是一个主分区,/sda2是一个扩展分区,/sda5是在扩展分区中分出的一个逻辑分区。它们以扇区的编号进行划分,如/sda1从75497471到2048之间的扇区作为它的存储空间。

这里就有个问题为什么第一个分区不是从第一个扇区开始算起呢?前面空出来的2048个扇区,刚好是1M,有什么具体用途吗?有些人可能会说这一部分是用来保留MBR的,但是MBR只有512个字节,其中第一部分有446个字节,用于存放引导代码,第二部分有64个字节,用于存放磁盘分区表。

这只是一部分原因,主要的原因是UEFI的兴起。

BIOS中有UEFI和Legacy启动模式。在Legacy启动模式中,硬盘分区格式应该为MBR格式;在UEFI启动模式中,硬盘分区格式应该为GPT格式。需要给UEFI 代码留磁盘最开始的1M空间。

从下面的分区来看,我们还可以在75497471 - 75499518 之间或者83884031 - 83886080再分出分区。

2.png

使用fdisk 命令对/dev/sda进行分区1$ fdisk /dev/sda

输入m查看命令帮助:

3.png

输入p查看当前磁盘的分区情况,和使用fdisk -l /dev/sda效果一样

4.png

输入n创建分区:

5.png一开始会提示你要创建的主分区还是扩展分区或者逻辑分区。输入p,创建主分区。

接着提示提示输入分区的号,输入3

起始扇区号,根据上图我们选择75497471+1作为起始点,结束点扇区号选择75499517。

再输入p查看当前磁盘分区情况,可以看到创建的/sda3出来了。

6.png

退出并保持输入w,退出不保持q,这里输入w保持:

7.png

使用fdisk -l再次确认一下分区是否创建成果:

8.png

分区格式化

经过上面分区,我们得到了一块新的分区,为了要使用这块分区,需要对其进行分区格式化。格式化的目的是什么呢?

了解过Linux文件系统的,都知道每一个文件夹有一份元数据,保存在了inode中,这个inode放了文件创建时间、权限等数据,这部分数据并不是我们去写入的,而是通过文件系统帮我们创建的,而上面的格式化就是让这块分区有这块功能。

使用mkfs.ext4 /dev/sda3对其格式化:1$ mkfs.ext4 /dev/sda3

你会发现报了下面这个错误:

9.png

这个是因为创建的分区/sda3没有被系统读取到,可以选择重启系统,或者使用partprobe命令。1

2$ apt-get install parted

$ partprobe

10.png

再次使用mkfs.ext4 /dev/sda3对其格式化:

11.png

分区格式化成功!!

分区挂载

现在磁盘上的分区经过格式化已经可以来放东西,那么现在就给这个分区配置一个入口就好了,其实就是讲一个系统目录和这个分区关联起来,那么放在这个系统目录下的东西就会到该分区上了。

创建放置分区的一个空目录,如果直接挂载其他已经存在的目录会导致该目录下的文件暂时消失。1

2

3

4$ mkdir /mnt/test

$ mount /dev/sda3 /mnt/test

$ df-lh #查看分区挂载情况,可以看到sda3已经挂载到/mnt/test上了

12.png

自动挂载

因为系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘,所以下面修改/etc/fstab中的内容来保证下次启动之后该分区还挂载在设备上。

先来查看一下/etc/fstab下的内容:1

2

3

4

5

6

7

8

9

10

11

12# /etc/fstab: static file system information.

#

# Use 'blkid' to print the universally unique identifier for a

# device; this may be used with UUID= as a more robust way to name devices

# that works even if disks are added and removed. See fstab(5).

#

#

# / was on /dev/sda1 during installation

UUID=2304cbd9-adde-422f-b34d-f23e24846468 / ext4 errors=remount-ro 0 1

# swap was on /dev/sda5 during installation

UUID=c2e43c14-978d-4d9d-bd8b-423342f2c4ae none swap sw 0 0

/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0

每一行都有六列

第一列:磁盘设备文件或者该设备的Label或者UUID。(建议使用UUID作为标识)使用blkid来查看分区的UUID

13.png

第二列:设备的挂载点,就是你要挂载到哪个目录下。

第三列:磁盘文件系统的格式,包括ext2、ext3、reiserfs、nfs、vfat等。

第四列:parameters:文件系统的参数。Async/sync设置是否为同步方式运行,默认为asyncauto/noauto当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto

rw/ro是否以以只读或者读写模式挂载

exec/noexec限制此文件系统内是否能够进行”执行”的操作

user/nouser是否允许用户使用mount命令挂载

suid/nosuid是否允许SUID的存在

usrquota启动文件系统支持磁盘配额模式

grpquota启动文件系统对群组磁盘配额模式的支持

defaults同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置

第五列:能否被dump备份命令作用:dump是一个用来作为备份的命令。通常这个参数的值为0或者1。0代表不要做dump备份1代表要每天进行dump的操作

2代表不定日期的进行dump操作

第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。0不要检验1最早检验(一般根目录会选择)

21级别检验完成之后进行检验

将dev/sda3配置进去/etc/ fstab:1$ vim /etc/fstab1

2

3

4

5

6

7

8

9

10

11

12

13

14# /etc/fstab: static file system information.

#

# Use 'blkid' to print the universally unique identifier for a

# device; this may be used with UUID= as a more robust way to name devices

# that works even if disks are added and removed. See fstab(5).

#

#

# / was on /dev/sda1 during installation

UUID=2304cbd9-adde-422f-b34d-f23e24846468 / ext4 errors=remount-ro 0 1

# swap was on /dev/sda5 during installation

UUID=c2e43c14-978d-4d9d-bd8b-423342f2c4ae none swap sw 0 0

# 配置了sda3,注意defaults不要写成大写的Defaults

UUID=9b4c350b-180f-4a33-9df3-d12b69c40b51 /mnt/test ext4 defaults 0 2

/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

重启之后,分区还是挂载到设备上,配置成功!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值