学习日志---linux 磁盘与内核关系以及分区

文件系统:

操作系统是如何识别磁盘和分区的:

MBR: Master Boot Record, 主引导记录,存放磁盘的信息,包括分区信息,操作系统引导程序,标志符号。一个扇区大小

MBR一共512个字节,下面是这些字节的分配:

512bytes:

bootloader: 446bytes:

引导加载器程序,加载操作系统的程序,用来启动操作系统的,例如在开机时可以选择启动哪个操作系统,就是这段的信息

fat: (磁盘分区)文件系统分配表,64bytes, 16bytes引导一个分区, 因此只有四个主分区,引导作用,也就是为了找到,不是规定大小

MBR有效性标记:5A ,其余剩下的两个字节

MBR是不属于任何分区的,机器首先启动的是这个

4:主分区,可扩展

3主,1扩展分区:引用额外的分区表:

每个主分区就是一个分配表,指向该分区所属的位置等信息

主分区是对应每个区的分配表,因为磁盘越来越大,因此16个字节的分配表不够用,因此需要将提出扩展分区,扩展分区是用来引用额外分区表的,也就是说扩展分区指向了一个更大的分配表,该分配表在指向其定义的分区,也就是逻辑分区。

逻辑分区

主分区在分区表方面受限定就是因为引导分区的空间太小

硬盘设备都存在该目录下:/dev/

硬盘接口:

IDE(ATA)控制器: 并口,每个控制器可接两个硬盘,master/slave一主一从,133MB/s

/dev/hd[a-z]    在centos6中 hd就换为sd了,hda代表第一块硬盘(主盘),hdb代表第二块硬盘(从盘)

每一个磁盘上面有很多分区,每一个分区在系统看来都是一个独立的设备,被独立设置访问的

/dev/hda

/dev/hda[1-4] 表示的是hda这块硬盘的的主分区,1-4代表区

/dev/hda[5+]  5以后的代表逻辑分区

SCSI设备: Small Computer System Interface  非常非常快

320MB/S

SATA(Serial): 300Mbps, 600Mbps, 6Gbps

SAS:6Gbps   出来很多接口,每个接一个硬盘

USB:

/dev/sd[a-z]   sd是系统识别硬盘接口的标志,centos6以后都统一为sd,可再区分,后面字母是指明哪个硬盘

[1-4]

[5+]

内核通过/dev下的设备文件访问磁盘

/proc下的文件是当前操作系统内核中状态数据和配置信息,/proc是一个伪文件系统,由内核输出出来,方便用户的程序查看的当前系统有多少分区信息的接口

proc下的partitions文件内容是当前的文件系统的硬盘分区信息,是内核识别的

[[email protected] proc]# cat /proc/partitions

major minor  #blocks  name

8        0    8388608 sda

8        1     512000 sda1

8        2    7875584 sda2

253        0    7036928 dm-0

253        1     835584 dm-1

完!

根是记录在内核中的,文件是存在磁盘上的,内核启动后拿这个根作为外界访问的入口,将磁盘挂载到该内核中,用户就可以通过该入口访问磁盘上的数据了

文件系统属于内核,内核来定义根。MBR的bootloader根据元数据区的信息找到操作系统启动,内核启动后,在内核中创建根,作为外界访问的入口。

磁盘格式化时,会将磁盘划分为元数据区和数据区,只要能在元数据区中查找,就可以所有数据的位置,这也就是bootloader找操作系统存放位置的方法。

文件系统的根是在内核上,是文件系统的入口,目录是在磁盘上,例如bin。。

内核启动所需的执行文件一定要放在根分区上,因为内核启动时,只会先挂载根分区到内核上,例如/bin,/sbin,/lib,/etc

其他分区的文件需要通过主分区再挂载到根上

/bin, /sbin

/usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

/lib, /lib64, /usr/lib, /usr/lib64

/etc/

/media, /mnt

/dev

/proc, /sys

/home, /root

/var

/opt, /misc

/srv

/tmp

/boot

/usr

fdisk, sfdisk, parted

[[email protected] proc]# fdisk -l /dev/sda

Disk /dev/sda: 8589 MB, 8589934592 bytes

255 heads, 63 sectors/track, 1044 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000eb87f

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          64      512000   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2              64        1045     7875584   8e  Linux LVM

*表示内有引导文件,如内核

start和end指的是cylinders的大小,从开始到结束的位置

VFS:虚拟文件系统,使得linux可以支持多种文件系统,而对更高一层可以统一命令

文件系统:

基本文件系统:Ext2, Ext3, Ext4, Reiserfs(对小文件处理很好), xfs(对单一大文件支持非常好), JFS, vfat, NTFS

交换分区:swap

集群文件系统:GFS2, OCFS2

网络文件系统:NFS, smbfs(CIFS)

光盘:iso9660

raw:

fdisk /dev/sda

d: 删除分区

n: 新建分区

p: 列出磁盘上的信息,当前磁盘上的分区

t: 调整分区ID,文件系统类型

l: 列出内核支持的分区ID,也就是内核支持的文件系统

w: 保存退出

q: 不保存退出

以下两个指令是在对磁盘进行分区后,感觉使用fdisk对/dev/sda操作,就是对磁盘设备文件的操作,制定下来分区,然后使用下面指令,使得内核识别出分区。

起始的磁盘可能使用不全,只是制定下的分区可以使用,分区使得磁盘其他剩余空间可以进行使用。

CentOS 5: partprobe

CentOS 6: partx, kpartx

在6中要反复使用下面三个指令才可以完成操作,比较shit

kpartx -l /dev/sda

kpartx -af /dev/sda

partx -a /dev/sda

时间: 2024-10-13 16:33:14

学习日志---linux 磁盘与内核关系以及分区的相关文章

学习日志---linux磁盘格式化

Linux: ext2,3,4这几个文件系统大多数linux都支持 对磁盘进行分区后,通过kpartx和partx指令让内核识别磁盘分区,接下来进行磁盘区的格式化,也就是创建文件系统: 格式化操作其中之一就是对分区创建元数据区和数据区,元数据区存的是inode,每个inode就是一个条目,对应一个文件,inode中还存着文件在数据区对应的块的编号,数据区很多的block,每个block是512个字节,使用时以2的n次方作为单位来使用,每个分区统一以几个block做为一个最小单元来存储数据. 文件

学习日志---linux 磁盘分区的挂载

挂载管理: GPT分区机制: 在单个硬盘超过2T时,MBR的分区机制就不行了,要使用GPT这个分区机制 SSD:固态硬盘 电气式硬盘,工作特性很好 分区:fdisk, 格式化:创建文件系统 hdparm -i  查看磁盘信息 -I -g  显示磁盘的布局信息 -t  查看磁盘性能 -T /proc/partitions  分区信息 /proc/meminfo   当前内核内存使用情况 /proc/filesystems   当前内核已经识别的文件系统信息 [[email protected] ~

学习日志---linux块组深入,链接,压缩和打包

块组的意义 inode是指明一个文件的数据存储block的位置的,但由于inode存放大小的原因,不可能一次指向很多的block,因此采用多层指向,一个inode指向一个block区,一个block区中有很多的block,然后其下的block又指向其他的区. 目录文件也需要inode和block,目录文件的额block存储的是一张文件映射表,指明该目录下的文件对应的inode. 内核带有根目录,内核知道根分区以及根目录的inode号,因此从这里开始找. 文件删除时,即rm指令,在磁盘来说只是把该

20、磁盘管理—linux磁盘管理详解(分区)

linux磁盘管理 添加磁盘步骤: fdisk 管理磁盘分区 格式化文件系统. 设备挂载 开机自动挂载 UUID挂载 取消挂载点 Parted(gpt大于2G分区) 查看文件系统的使用情况. df 查看挂载信息与磁盘使用量 du 查看使用量 查看分区状况lsblk 查看设备信息blkid linux磁盘管理 当全新安装了一块新的硬盘设备后,为了更充分.安全的利用硬盘空间首先要进行磁盘的分区,然后格式化,最后挂载使用. 添加磁盘步骤: 添加设备->分区->格式化(创建文件系统)-> [起名

学习日志---linuxの 程序包管理综述

Linux的程序包管理: 应用程序: GPL:源码, POSIX: Portable Operatin System API: 兼容,意味开发库兼容,因此,源代码可跨平台 ABI:兼容,编译后的程序可以跨平台: 不同的平台可执行的二进制程序格式不同,因此编译后的相同程序在不同平台不一定都能运行 库:可执行程序,本身不能作为程序执行入口,但可以被调用 编译好的二进制格式 程序:预编译.编译.汇编.链接 静态: 动态链接:dll(windows), 在linux下,so(shared object)

学习日志---linuxの RPM软件包管理器

rpm包的使用: rpm包命名格式: 源程序:name-version.tar.{gz|bz2|xz}  打包在一起的源码 version: major.minor.release rpm包:name-version-release.arch.rpm  这是打包好的二进制程序了 release:通常包含rpm的制作发行号,还包含适用的OS arch:这个是适用于哪种硬件架构,还有位数 例子:bash-4.3.2-2.el6.x86_64.rpm OS平台: el6: redhat enterpr

学习日志---linuxの yum的解析与使用

rpm软件程序包存在的问题:依赖关系 依赖关系解决方法: 程序包管理器的前端工具:yum (Yellowdog Update Modifier) yum是rpm的补充,为了提升用户体验的工具. yum的核心功能:自动解决依赖关系:X --> Y --> Z 文件服务器(共享rpm包):通过yum所支持的文件共享机制将各rpm包通过文件服务共享 该服务器是一个repository: yum仓库 组成部分: 1.各rpm包; 2.依赖关系.程序包安装后所能够生成文件列表等元数据文件; ftp, h

学习日志---linux打卡2

这个是计算机组成: 在系统启动时,除了启动系统空间守护进程以外,在用户空间会启动一个init进程,这是用户空间进程的祖宗进程,由该进程可以启动shell进程(外壳进程),这样就可以由外壳去启动其他的与用户交互的用户进程. 学习记录: Unix: Linux: Unix-like, 类Unix系统 Linux: 内核,linux就是指的核心 GNU自由软件组织:GPL, gcc, emacs, vi, GNU/Linux: 结合,使用内核+其他的应用程序 Linux: www.kernel.org

学习日志---Linux打卡1

直接操作硬件的,由cpu的特权指令集去操作,一般的操作都是普通指令集.cpu有指令集,不同的cpu可能指令集都不同. API:Application Programing Interface ABI: Application Binary Interface ANSI: 编译前的是调用API,编译后的是ABI,程序在哪里编译就在哪里运行. 预处理->编译->汇编->链接 dll: Dynamic Link Libraries动态链接库   window上 so: shared objec