linux文件系统简介
--摘自《鸟哥的私房菜》
一、物理硬盘的特性:
扇区sector(512Byte)是最小的物理存储单位;
磁柱是分区的最小单位(分区以磁柱为单位);
分区格式化为文件系统;
物理磁盘的第一个扇区最重要,里面有:主引导区(Master boot record, MBR)及分区表(partition table), 其中 MBR 占有 446 bytes,而 partition table 占有 64 bytes。
主分区表只能有4条记录;包括3个主分区和1个扩展分区;扩展分区只能有一个,扩展分区中能划分逻辑分区;
主分区名称:sda1、sda2、sda3、sda4;扩展分区(逻辑分区)只能从sda5开始;
对某个分区进行格式化后得到一个文件系统。
开机启动过程:
加电启动-》bios里微码执行,读取主硬盘MBR中的 开机管理程序-》加载操作系统-》启动
二、linux文件系统
superblock:超级块。
记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式不相关信息等;
一般为1024字节;
inode:节点。
记录文档的属性,系统读写档案时需要先找到 inode,并分析 inode 所记彔的权限与用户是否符合;
一个文档占用一个inode,同时记录此文档的数据所在的 block 号码;
inode 的数量大小也是在格式化时就已经固定了;
每个 inode 大小均固定为 128 bytes;
每个文件都仅会占用一个 inode 而已,因此文件系统能够建立的档案数量与 inode 的数量有关;
inode 记彔 block 号码的区域定为12 个直接,一个间接, 一个双间接和一个三 间接记彔区。
data block:数据块
实际记录文档的内容,若文档太大时,会占用多个 block ;但每个block只存放一个文件,如果文件过小,则会产生空间浪费。
block可能为1K、2K、4K大小,格式化后固定下来;
dump2fs查看文件系统整体情况;
目录也是文件,内容为目录下包含的文件(目录)的inode和文件名;
三、磁盘常用操作命令
对磁盘分割,建立分区;
对分区进行格式化,建立系统可用的文件系统;
对文件系统进行检查修复;
建立挂载点,挂载文件系统
1、磁盘分割:对磁盘进行分割,建立可用分区
fdisk [-l] 设备名称
当使用-l参数时,列出设备所有分区;不使用-l参数时,进行磁盘分区设置(增删改等);
2、磁盘格式化:进行文件系统的格式化
mkfs [-t 文件系统格式] 设备名
mkfs:make filesystem;
-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
mkfs 其实是个综合指令,当我们使用『 mkfs -t ext3 ...』时, 系统会去呼叫 mkfs.ext3 这个指令来进行格式化的动作;
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.msdos mkfs.vfat
3、磁盘检查
fsck [-t 文件系统] [-ACay] 装置名称 ; 检查及修正文件系统的错误
badblocks -[svw] 装置名称 ; 用来检查硬盘或软盘扇区有没有坏轨的指令
4、磁盘挂载和卸载
单一文件系统丌应该被重复挂载在丌同癿挂载点(目彔)中;
单一目彔丌应该重复挂载多个文件系统;
要作为挂载点的目彔,理论上应该都是空目录。
示例:
mount u盘:
使用fdsk -l查看u盘的文件系统;需要虚拟机先将u盘识别;虚拟机-》连接
mount -t vfat /dev/sdb1 /home/liming/testdir ; 也可不指定文件系统类型
挂载光盘:
mount -t iso9660 /dev/cdrom /media/cdrom
将某个目录挂载到另一个目录:
将 /home 这个目彔暂时挂载到 /mnt/home 底下:mount --bind /home /mnt/home
umount [-fn] 装置文件名或挂载点