Linux:fdisk指令、/etc/fstab
学习自:
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
学习自:
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 所检查。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
2021-11-25 Python:matplotlib.cm 色表