linux磁盘管理+文件系统

本文主要介绍linux硬盘的基础知识。

一. 硬盘简介

linux用来存储的设备分为两种:内存RAM 和 硬盘Hard Disk。内存速度快,掉电后易失。硬盘速度慢,掉电后非易失。(闪存Flash是最新流行的存储器,和硬盘类似)

硬盘接口类型(硬盘与主机系统之间的连接):

  • IDE:传统的并口硬盘,系统中标识为 /dev/hdx,使用最普遍,速度慢,便宜,不支持热插拔。
  • SATA:serial ATA,串口硬盘,标识 /dev/sdx,速度快,支持热插拔(我们常用的u盘在系统中的标识也是 /dev/sdx)
  • SCSI:服务器用的多,比较贵。

在 Linux 系统中,一切皆文件,硬盘设备也不例外,其对应的文件命名规则为:
主设备号sd + 次设备号[a-z] + 分区序号x  = sd[a-z]x

  • 主设备号代表设备的接口类型,相同的 主设备号表示同类型的设备。
  • 次设备号代表同类设备中的序号,用 小写字母 表示。比如 /dev/sda 表示第一块硬盘,/dev/sdb 表示第二块硬盘。
  • 数字x 表示硬盘分区的编号。在每块硬盘上会划分多个分区,针对每个分区,Linux 用 /dev/sdbx 来划分,这里的 x 表示第二块硬盘b的第 x 个分区。如下图所示:

      

     截图中一共有四块硬盘 /dev/sda,/dev/sdb,/dev/sdc 和 /dev/sdd。其中 /dev/sda 上共创建了三个分区,分别是 /dev/sda1,/dev/sda2,/dev/sda5;/dev/sdb 上只有一个分区 /dev/sdb1。而 /dev/sdc 和 /dev/sdd 则尚未分区(也可能是只有一个分区,分区的名称和硬盘的名称相同)


硬盘物理结构:

  • 磁道:在硬盘的每一个盘面上,会逻辑的切割出许多磁道。
  • 柱面:由相同编号的磁道构成。有多少条磁道,就有多少个柱面。
  • 扇区:每一个磁道可以切割出若干个扇区。

扇区、块/簇、页 三者关系:

  1. sector:硬盘存储的最小物理单元
  2. block/cluster:文件系统 管理硬盘 的最小单元 (linux称为块,windows称为簇)
  3. page:内存的最小单元

硬盘容量(CHS): CHS即Cylinder(柱面)、Head(磁头)、Sector(扇区)。只要知道了硬盘的CHS的数目,即可确定容量(容量=柱面数*磁头数*每道扇区数*512 Byte)。

硬盘的第一个扇区:

    第一个扇区里装载了两个重要的信息:

  1. MBR:主引导记录 master boot record,有446bytes
  2. PT:分区表 partial table,记录整个硬盘的分割状态,有64bytes

计算机刚上电时,会通过主板的BIOS+cmos芯片获取硬件信息,之后读取硬盘首扇中的MBR。

分区表 最多只能放4个分区的信息,一般为3个主分区 加1个扩展分区,而扩展分区由众多的逻辑分区组成。("扩展分区"仅仅只是个称呼,它是一个指向下一个逻辑分区的指针,没有实际容量)


bootloader:

是操作系统安装在MBR中的一套软件,主要任务有:

  1. 提供功能菜单:选择不同开机项目
  2. 启动内核
  3. 转交管理任务:将开机管理功能转交给其它的loader负责(多重引导需要)

GRUB:GrandUnified Boot Loader,linux系统启动的加载器,和bootLoader目的一样,为了启动内核。

BIOS先把MBR中的引导程序(也就是GRUB的stage1部分)加载到ram后就把控制权交给了grub,然后gurb通过stage1的代码找到stage2的位置,执行它,启动内核,之后把机器的控制权移交给了操作系统。

二. 硬盘分区

所谓分区,就是告诉操作系统,我们这块硬盘 在此分区内可访问的数据区域为:A柱面到B柱面之间的块   -- vbird

简单点说 就是给硬盘划一道道边界线出来

新的硬盘安装好后可用fdisk工具开始分区。使用流程:

    

  • 查看硬盘分区情况:fdisk -l
  • 查看home目录挂载路径: df -h /home

-----------------------------------------------------------------------------------

然后 格式化 --> 创建文件系统

    分区成功后会出现/dev/sdb1 等设备文件,还需要对其进行格式化,也就是指定文件系统,系统才能够使用。

    mkfs.ext4 /dev/sdb1 

    创建其他文件系统的简写模式:

    

挂载

挂载 -- 将文件系统与目录树结合起来

挂载点:访问分区的入口,一定得是目录(为啥称为挂载点呢,本人觉得可能是因为linux目录下有个小数点,代表当前目录,而挂载点的意思就是指分区挂载在哪个目录下,所以才叫做mount point 吧)

step:

  1. mkdir /mnt/sdb1  -- 先建立 sdb1目录,作为挂载点
  2. mount  /dev/sdb1 /mnt/sdb1/  -- 使用 mount ,把/dev/sdb1分区 挂载到/mnt/sdb1目录下

将新硬盘挂载到home目录下,这更简单--> mount /dev/sdb1  /home

Note:

  • mount -t  还可指定文件系统类型
  • 开机自动挂载:/etc/fstab
  • 修改只读目录xx 为可读写:mount -o remount,rw xx
  • 直接输入mount命令,可查看所有mount的点

文件系统

文件系统:用来管理文件的一套系统(或者一套方法)

 Linux 的文件系统主要分为三大块:

  1. 上层的文件系统的系统调用-- read() 、write() ...
  2. 虚拟文件系统VFS
  3. 挂载到 VFS 中的各实际文件系统,例如 ext2,jffs 等。

    

ext文件系统 三剑客:

  • inode:记录文件信息。包括权限、属性、block编号等,文件名相当于inode别称。
  • block:记录文件数据。每个block最多只能放一个文件内容。大小有三种:1k、2k、4k
  • superblock:记录fs的整体资讯,包括inode/block的使用量等

目录:由一系列目录项组成。它也有一个专属的inode和至少一个block (只是用来存放目录项)。每一个目录项记录的是当前目录的文件名和与之对应的inode编号。

想要进入某个目录,当事人必须拥有此目录的 x权限

硬链接软链接

  1. 硬链接:ln 源文件名  链接文件名 。一个inode编号对应多个文件名,删除其中一个对另一个没影响。ls -l命令的第二列参数代表硬链接的个数。

  2. 软链接:ln -s 源文件名 链接文件名。其block存储的是源文件名路径。可以跨越文件系统,很灵活。

<未完待续>

 

软硬链接参考 https://www.cnblogs.com/ylan2009/p/4287929.html

设备文件名参考 https://www.cnblogs.com/shenshizhong/articles/4418248.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值