Linux:fdisk指令、/etc/fstab

学习自:

fdisk命令详解 - 知乎

Linux fdisk命令详解:给硬盘分区_fdisk -l-CSDN博客

初始化Linux数据盘(fdisk)|华为云_fdisk 华为云 初始化云盘-CSDN博客

1、说明

新添加硬盘之后,需要用fdisk指令来完成分区。

不要在当前硬盘上使用fdisk,这会删除整个系统。

2、用法

输入fdisk 分区,再输入m后,可以看到fdisk在分区过程中的各种用法(注意不要在当前盘上使用,测试请在虚拟机或者新硬盘上进行):

常用的命令有:

   a   切换可引导标志,标明分区是否可以作为引导分区
   d   删除分区,new的反向操作
   l    列出已知分区
   n   新建分区
   q   退出,不保存修改
   t   更改分区系统id
   w   退出,保存修改

3、例子

1)列出系统中所有的硬盘分区:fdisk -l

复制代码
fdisk -l

Disk /dev/vda: 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: 0x000c9474

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886046    41941999+  83  Linux

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0xace52025

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048    20971519    10484736   83  Linux
复制代码

解释

上图列出了该系统所拥有的两块硬盘:/dev/vda1、/dev/vdb1

每段的结构介绍都是一样的:

复制代码
Disk /dev/vda: 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: 0x000c9474

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886046    41941999+  83  Linux
复制代码

Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

盘/dev/vda1大小42.9G,共83886080个扇区,每个扇区大小512B。

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886046    41941999+  83  Linux

扇区号从2048到83886046。

③扇区

一个硬盘设备可以简单理解为由大量扇区组成,扇区是硬盘的最小存储单元。一个扇区大小为512B,现在也有更大扇区的硬盘。

在所有扇区中,第一个扇区是最重要的,其中保存了主引导记录、分区表。

对于分区而言,首个分区总是从2048开始,即上文的start。由于上文只分了一个区,因此这个盘的扇区Start和End自然就是2048扇区和83886046扇区。

2)申请、分区、挂载新硬盘(下文以华为云硬盘为例,本地盘挂载与此类似,从第三步开始看即可)

①在华为云官网申请一个10G大小的云硬盘

 ②绑定

这里的挂载是指把这块盘跟服务器关联,来让服务器可以扫描到这块空的盘:

 之后服务器ecs-7954就可以“看到”这块盘了,现在去服务器上检查一下:

 多出了一块盘,但是现在还没进行分区,因此无法使用:

③分区

fdisk /dev/vdb

 输入n,代表开始新建分区(new):

输入p,代表主分区(primary);

再输入1,代表分区个数为1:

 之后会让输入起始扇区、结束扇区的编号,在都使用默认的情况下,从2048号扇区(起始扇区能取到的最小的扇区号)到最后一个扇区:

输入w,把上述分区信息保存到系统分区表中:

 再用一次fdisk -l查看分区结果:

 完成分区。

上文的vdb1中的1代表分区编号,由于我们这里只分了一个区,所以只有一个编号1,如果分了多个区,那么这里的编号就会变多,一个盘最多分4个主分区,即最多有vdb1,2,3,4四个区(学习自:MBR 分区最多只能分四个区,那么扩展分区是如何突破限制的呢?_mbr最多有多少个分区-CSDN博客)。

④格式化

mkfs.ext4 /dev/vdb1

将磁盘格式化为ex4格式。

⑤挂载

a)创建/data目录,作为挂载点

mkdir /applog

b)mount挂载

mount /dev/vdb1 /applog

c)检测磁盘是否可用

cd /applog
vim test.txt
#在test.txt中随便写点东西
cat test.txt

d)设置开机自动挂载

vim /etc/fstab
#在末尾加上挂载信息
/dev/vdb1 /applog ext4 defaults 0 0

 测试能否自动挂载:先卸载

umount /applog
df -Th

再重新载入挂载信息:

mount -a
df -Th

 挂载完毕。

 4、/etc/fstab

学习自:

Linux文件:/etc/fstab-CSDN博客

1)说明

/etc/fstab这个文件存放的是系统中各个文件系统的信息(file system table,文件系统表)

当系统启动的时候,应用系统会自动从这个文件读取信息,根据其内容进行自动挂载的工作

磁盘被手动挂载之后都必须把挂载信息写入到/etc/fstab这个文件中,否则下次开机启动时仍要用mount重新挂载

2)要求

①根目录最先挂载,其他所有目录都是由根目录衍生出来的;

②挂载点必须是已存在的目录;

③挂载点要遵守必要的系统目录架构原则;

④所有挂载点只能挂载一个盘,不允许一点多挂;

⑤所有分区只能挂载一次;

⑥卸载(umount)时,需要先退出挂载点目录外。

3)例子

①刚挂载了一个盘的新系统(上文华为云挂载的例子)

一共6列:

1 2 3 4 5 6
UUID=fd44…… / ext4 defaults 1 1
/dev/vdb1 /applog ext4 defaults 0 0
分区或设备 挂载点 文件系统类型 挂载选项 dump选项 fsck选项

第一列:分区、设备

第一列是将来要使用的分区或设备:除了可以用/dev/vdb1这样的分区名外,也可以用UUID=……这种样式指出要用的设备。每个分区被格式化之后都会有一个UUID作为。

可以用blkid指令查看设备的UUID:

blkid /dev/sda1
/dev/sda1: UUID="e41e19ba-d5b3-4fe0-b661-26a9778c9d45" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="87e818df-01"

第二列:挂载点

第二列是挂载点,即要把哪个目录当做这块盘的逻辑入口。

第三列:文件系统类型

ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 及 auto。

第四列:挂载选项

挂载时使用的参数

复制代码
一些比较常用的参数有:
auto - 在启动时或键入了 mount -a 命令时自动挂载。
noauto - 只在你的命令下被挂载。
exec - 允许执行此分区的二进制文件。
noexec - 不允许执行此文件系统上的二进制文件。
ro - 以只读模式挂载文件系统。
rw - 以读写模式挂载文件系统。
user - 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec, nosuid, nodev 参数。
users - 允许所有 users 组中的用户挂载文件系统.
nouser - 只能被 root 挂载。
owner - 允许设备所有者挂载.
sync - I/O 同步进行。
async - I/O 异步进行。
dev - 解析文件系统上的块特殊设备。
nodev - 不解析文件系统上的块特殊设备。
suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
nosuid - 禁止 suid 操作和设定 sgid 位。
noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
nodiratime - 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。
flush - vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async.
复制代码

第五列:dump备份

dump 工具通过它决定何时作备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 应设为 0。

第六列:fsck,文件系统的检查顺序

fsck决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2。0 表示设备不会被 fsck 所检查。

 

posted @   ShineLe  阅读(339)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
历史上的今天:
2021-11-25 Python:matplotlib.cm 色表
点击右上角即可分享
微信分享提示