linux 文件系统

Posted 武云医生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 文件系统相关的知识,希望对你有一定的参考价值。

(一)分区:

(1)主分区:

一块硬盘总共最多只能分四个;扩展分区只能有一个,也算作主分区的一种,也就是说主分区加扩展分区最多有四个。但是扩展分区不能存储数据和格式化,必须再划分成逻辑分区才能使用。

逻辑分区:逻辑分区是在扩展分区中划分的,如果是IDE硬盘,Linux最多支持59个逻辑分区,如果是SCSI硬盘Linux最多支持11个逻辑分区。





(2)分区表示方法:

①图例表示:

\'linux



②说明:

a代表第一块硬盘

1.2.3.4:代表四个主分区

\'linux



③常用方式:

分一个主分区,别的都为扩展分区,即使主分区没有使用3和4的分区号,也不能给逻辑分区使用


\'linux


\'linux






(二)文件系统:

(1)ext2:是ext文件系统的升级版本,Red Hat Linux7.2版本以前的系统默认都是ext2文件系统。1993年发布,最大支持16TB的分区和最大2TB的文件(1TB=1024GB=1024*1024KB)




(2)ext3:ext3文件系统是ext2文件系统的升级版本,最大的区别就是带日志功能,以在系统突然停止时提高文件系统的可靠性,支持最大16TB的分区和最大2TB的文件。




(3)ext4:它是ext3文件系统的升级版。ext4在性能、伸缩性和可靠性方面进行了大量改进。EXT4的变化可以说是翻天覆地的,比如向下兼容EXT3、最大1EB文件系统和16TB文件、无限数量子目录、Extents连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。是CentOS6.3的默认文件(1EB=1024PB=1024*1024TB)






(三)常用系统命令:

(1)df //查看所有的分区:

a:--all

B:--block-size=SIZE

h:--human-readable

H:--si

i:--inodes 显示inode 信息而非块使用量

k 即--block-size=1K

l:--local 只显示本机的文件系统

P:--portability

--sync

t:--type=TYPE

T:--print-type

x:exclude-type=TYPE

m:MB显示

k:KB显示


\'linux



①df -h //更清楚的显示:

\'linux





(2)du:统计目录和文件大小:

a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量

h:使用习惯单位显示磁盘占用量,如KB,MB或GB等

s:统计总占用量,而不列出子目录和子文件的占用量

备注:

ls :只能统计文件或者文件夹名的大小,统计不了整个目录数据的大小





(3)df和du命令的区别:

df命令是从文件系统考虑的,不光要考虑文件用的空间,还要统计被命必或程序舌用的空间(最常见的就是文件已经删除,但是程序并没有释放空间,还有进程占用的空间)du命令是面向文件的,只会计算文件或目录占用的空间





(4)文件系统修复命令fsck:平时不建议使用

fsck [选项] 分区设备文件名

a:不用显示用户提示

y:自动修复





(5)dumpe2fs:显示磁盘状态:






(四)mount:查询和挂载

mount [-t 文件系统] [-L 卷标名{别名}] [-o 特殊选项] 设备文件名 挂载点

l:显示已经挂载的设备

a:根据配置文件,自动挂载。/etc/fstab

[-o特殊选项]设备文件名挂载点选项:

-t文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、(iso9660等文件系统

-L卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载

-o特殊选项:可以指定挂载的额外选项


\'linux


①示例:mount -o remount,noexec /home //重新挂载boot分区并且不让home这个文件夹执行,并使用noexec权限,noexec表示不执行,可以保护分区安全,一般用在文件服务器,用户上传的东西如果是脚本,就比较危险,如果不让他执行就安全





(五)挂载光盘和u盘和卸载:

(1)挂载:

①mkdir /mnt/cdrom //创建挂载点



②mount -t iso 9660 /dev/cdrom /mnt/cdrom //挂载光盘{dev/cdrom这是默认的,系统自动分配的}



简写:mount /dev/sr0 /mnt/cdrom //挂载光盘{dev/sr0也是默认的,系统自动分配的}



(2)卸载:

umount /mnt/cdrom //卸载,卸载的时候不要cd要文件夹下面




(3)挂载u盘:

\'linux

①fdisk -l //查看被挂载的硬盘属于哪个盘符



②mount -t vfta /dev/sdb1 /mnt/usb //u盘的挂载,在linux中把fta分区识别为fta,把fta32识别为vfta



③linxu默认不支持挂载ntfs文件系统





(4)ntfs的挂载:

需要安装 ntfs-3g,解压编译等






(五)fdisk分区:

(1)使用fdisk -l //看是否有新的分区或者硬盘发现:


\'linux



(2)fdisk /dev/sdb //进行分区

a:设置可引导标记

b:编辑bsd磁盘标签

c:设置DOS操作系统兼容标记

d:删除一个分区

l:显示已知的文件系统类型。82为Linux swap分区,83为Linux分区m|显示帮助菜单

n:新建分区

o:建立空白DOS分区表

p:显示分区列表

q:不保存退出

s:新建空白SUN磁盘标签

t:改变一个分区的系统ID

u:改变显示记录单位

v:验证分区表

w:保存退出

x:附加功能(仅专家)


①分区:fdisk /dev/sdb

选择“主分区还是扩展分区”

\'linux



②选择“主分区”,然后回车,按起始开始分,“选择G大小”分区

\'linux



③在按照这样的方式分一个扩展分区,在把扩展分区分一个:

\'linux



④在把这个扩展分区“分出来”:

\'linux


⑤查看分区之后的分区以及保存分区:

\'linux




⑥partprobe:重新读取分区:




(3)格式化分区:在看看格式化之后的大小

①mkfs -t ext4 /dev/sdb1



②lsblk





(4)创建挂载点,进行挂载:

①mkdir /root/home/ios1



②mount /dev/sdb1 /home



③df -Th //查看是否挂载成功






(六)自动挂载:

(1) vim /etc/fstab //警告,如果将fstab文件写错的话,会导致系统进入不了


第一字段:分区设备文件名或UUID(硬盘通用唯一识别码),不推荐使用文件名,因为文件名可能会存在位置更换的情况

第二字段:挂载点

第三字段:文件系统名称

第四字段:挂载参数

第五字段:指定分区是否被dump备份,0代表不备份,1代表每天备份,2代表不定期备份

第六字段:指定分区是否被fsck检测,0代表不检测,其他数字代表检测的优先级,那么当然1的优先级比2高,自己挂载的目录不能比系统自带的高,不能为1,应该为2



①dumpe2fs -h /dev/sdb1 //查看UUID



②vim /etc/fstab

UUID=30f71fcf-efd9-45da-b90d-f523ed6bdfa5 /mnt/vm ext4 defaults 1 2


③mount -a //根据配置文件自动在挂载一次

Linux 文件系统管理

linux文件系统类型

linux系统中对文件系统的原理进行分析

Linux文件系统操作命令

linux kernel 文件系统编程接口

linux下啥文件系统支持超个4G的单个(重点)文件?