Linux磁盘及文件系统管理

文件接口:open(), read(), write(), close()

设备类别:

块(block):随机访问,数据交换单位为“块”

字符(character):线性,数据交换单位为字符

设备文件:FHS(LSB)

/dev/: 设备

设备文件,关联至设备的驱动程序

设备号:

major:主设备号,区别设备类别,用于标明所需驱动程序

minor:次设备号,

磁盘设备文件:

IDE接口(ATA):并行, 133MB/s

两个IDE控制器:每个控制器可通过线缆接入两块磁盘,一主一从;

/dev/hd[a-z][#]

/dev/hda, /dev/hdb,

/dev/hdc, /dev/hdd

SCSI接口: 并行,Small Computer System Interface

UltraSCSI 320, 320MB/s

SATA接口:串行,Serial ATA,

6Gpbs

USB接口:串行,480MB/s

SAS接口:串行

设备文件:/dev/sd[a-z][#]

[a-z]:标记设备

[#]:磁盘分区

track: 磁道

sector: 扇区

cylinder: 柱面

寻道时间:平均寻道时间

MBR:0磁道0扇区,主引导扇区(master boot record)

三部分:

446bytes: bootloader,程序

64bytes: 分区表

16bytes:标记一个分区

4个主分区:3主,1扩展-->n逻辑分区

2bytes: 55AA, 当前MBR信息是否有效的标记;

分区标识方式:

主分区或扩展分区:1-4

逻辑分区:5+

fdisk命令:

1、查看已经识别的磁盘设备:

# fdisk -l /dev/[hs]d[a-z]

2、管理分区

# fdisk DEVICE

fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能;所有的操作均在内存中完成,没有直接同步到磁盘;

常用命令:

p: 显示现有分区表;

n: 创建新分区

d: 删除现有分区

t: 修改分区ID

l: 查看支持哪些分区ID

w: 保存退出

q: 不保存退出

m: 显示帮助信息

示例:/dev/sdb

3主+1扩展(3个逻辑)

2主+1扩展(4个逻辑)

查看内核是否已经识别新建分区:

# cat /proc/partitions

通知内核强制重读分区表:

CentOS 5: partprobe /dev/DEVICE

CentOS 6: partx, kpartx

partx -a /dev/DEVICE

kpartx -af /dev/DEVICE

注意:成功读取分区,可能需要命令重复执行2次或以上;

创建文件系统:

文件系统:

元数据:每个索引项称一个inode, (index node)

/var/logs/messages

根的inode --> 根目录对应的磁盘块 --> var对应的inode编号 --> 查inode table, 找到编号对应的inode --> var目录的磁盘块 --> logs 的inode编号 --> 查inode table, 找到logs目录的inode --> logs目录的磁盘块 --> 找到messages文件名对应的inode编号 -->查inode表,找到messages的inode编号对应的inode --> messages的磁盘块

链接文件:访问同一个文件数据不同路径

硬链接:两个文件路径指向了同一个inode;

创建方法:

# cp -l SRC DEST

# ln SRC DEST

特性:

(1) 目录不支持硬链接;

(2) 硬链接不能跨文件系统;

(3) 硬链接文件与原文件是指向同一个inode,创建硬链接文件会增加inode的引用计数;

符号链接:链接文件是一个完全独立的新文件,但其指向了原文件的文件路径;

特性:

(1) 符号链接文件与原文件是两个各自独立文件;

(2) 目录可以创建符号链接;

(3) 可以跨文件系统;

(4) 删除链接不影响原文件;但删除原文件,符号链接指向的文件路径将不复存在,因此,此时链接文件将变成失效的链接;

其大小并非真正原文件大小,而是指向的原文件的文件路径字符串所包含的字节数;

创建方法:

ln -s SRC DEST

bitmap索引

block group:

bitmap: inode, block

VFS: Virtual File System

Linux文件系统:ext2, ext3, ext4, reiserfs, xfs, btrfs

光驱:iso9660

网络文件系统:nfs, cifs

集群文件系统:gfs2, ocfs2

分布式文件系统:ceph

windows文件系统:ntfs, vfat

伪文件系统: tmpfs, hugepagefs, proc, sysfs

Unix的文件系统:FFS, UFS, JFS

交换文件系统:swap

文件系统管理工具:

创建文件系统

mkfs.ext2, mkfs.ext3, mkfs.xfs ...

检测文件系统

fsck.ext2, fsck.ext3, fsck.ext4, fsck.xfs .

查看其属性

dumpe2fs, tune2fs

创建文件系统:

mkfs.FSTYPE /dev/DEVICE

blkid /dev/DEVICE

mkfs -t FSTYPE /dev/DEVICE

ext系列:

Linux文件系统管理:

VFS:

日志文件系统:加速文件检测并修复的过程

ext3, ext4, xfs

非日志型文件系统:ext2

非一致性:

ext系列文件系统:mke2fs

mke2fs [OPTION]... /dev/DEVICE

-t {ext2|ext3|ext4}:指明要创建的文件系统类型

mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4

-b {1024|2048|4096}:其上限由page frame决定

-L LABEL:指定要使用的卷标

-j: 相当于使用-t ext3

mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

-i #: 指明inode与字节的比率;即,每多少字节给创建一个inode;

-N #: 直接指明给此文件系统创建多少个inode

-m #:指定预留空间的百分比;默认为5;

-O [^]FEATURE

UUID: 全局惟一标识符

e2label:

查看:e2label /dev/DEVICE

设定卷标:e2label /dev/DEVICE LABEL

tune2fs:查看或修改ext系列文件系统的某些属性

查看超级块中的数据信息:

tune2fs -l /dev/DEVICE

修改指定文件系统的属性:

-j: ext2 --> ext3

-L LABEL: 修改卷标;

-m #: 调整预留空间的百分比;

-O [^]FEATURE: 开启或关闭某种特性

-o [^]mount_options: 开启或关闭某种默认挂载选项

-o acl

-o ^acl

dumpe2fs命令:显示ext系列文件系统属性信息

dumpe2fs [-h] /dev/DEVICE

文件系统检测:

因进程意外中止或系统崩溃等原因导致写入操作非正常终止时,可能会导致文件损坏;此时,应该修改修复文件系统;

注意:应该离线进行;

fsck:

-t FSTYPE

fsck -t FSTYPE = fsck.FSTYPE

-a:自动修复所有错误

-r: 交互式修复错误

ext系列文件系统的专用工具:

e2fsck

-y: 对所有问题自动回复为yes;

-f: 即使文件系统处于clean状态,也要强制进行检测;

Windows无法识别Linux上专用的文件系统,因此,有存储设备需要两种系统之间交叉使用时,应该使用windows支持的文件系统:

# mkfs -t vfat /dev/DEVICE

swap文件系统:

Linux上交换空间必须使用独立的磁盘分区;

fdisk /dev/DEVICE

t命令调整其ID为82;

创建交换分区文件系统:mkswap命令

mkswap [-L LABEL] /dev/DEVICE

注意:在Linux系统上,所有的文件系统必须通过根文件系统的某个分支来访问;

根文件系统:根关联到的分区

有一定的要求:FHS

其余所有的其它文件系统如果想要被访问,都只能够通过“关联”至根文件系统上的某个目录来实现;

这种操作即所谓的“挂载”,也即mount;相反动作,即卸载,命令为umount

挂载点:mount_point,即用于作为另一个文件系统访问入口的目录;

mount命令:

mount DEVICE MOUNT_POINT

挂载点

1、事先存在;

2、应该使用别的进程未使用的目录;

3、挂载点下原有的文件将被隐藏;

mount:将显示当前系统已经挂载的所有文件系统的相关信息;

mount [OPTION]... [-t FSTYPE] [-o OPTION] [DEVICE] MOUNT_POINT

命令选项:

-r: 只读挂载

-w: read and write,读写挂载

-t FSTYPE: 被挂载的设备上的文件系统类型;可省略,此时mount会自动使用blkid命令来判断之;

-L LABEL: 以卷标的方式指定要挂载的设备,因此,此时DEVICE可省;

-U UUID:以UUID的方式指定要挂载的设备,因此,此时DEVICE可省;

-a: 自动挂载所有的支持自动挂载的设备(/etc/fstab文件中定义的支持自动挂载的设备);

-n: 默认情况下,设备挂载与否的改变结果会被保存于/etc/mtab中一份;-n选项用于变动时不更新此文件

示例:

# mount -U dea669ee-e769-46d9-86a8-88925a10278b /data/mydata

-o OPTION,挂载选项:

async:异步写入

sync:同步写入,即使用同步I/O;

atime/noatime:文件或目录在被访问时是否更新其访问时间戳;

diratime/nodiratime:目录在文中时是否更新其访问时间戳;

auto/noauto:设备是否支持mount命令使用-a选项时自动挂载;

dev/nodev:此设备上是否创建设备文件;

exec/noexec:是否允许执行此文件系统上的程序文件;

suid/nosuid:是否支持此设备上的文件上使用suid权限;

remount: 重新挂载;

acl: 支持使用facl;

# mount -o acl

# tune2fs -o acl /dev/DEVICE: 打开acl为默认挂载选项;

ro: 只读

rw: 读写

user/nouser: 是否允许普通挂载此文件系统

所有挂载选项均未指明时,其默认为:

defaults

Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.

另外一个使用技巧:

将某目录绑定至指定目录下,作为临时访问入口;

mount --bind 源目录  目标目录

查看所有已经挂载设备的方法:

# mount

# cat /etc/mtab

# cat /proc/mounts

umount命令:

umount DEVICE

umount MOUNT_POINT

注意:正在被某进程访问的设备是不可以被卸载的;查看被什么进程所占用:

# lsof MOUNT_POINT

# fuser -v MOUNT_POINT

# fuser -km MOUNT_POINT: 终止正访问挂载点的进程;

df命令:

df [OPTION]... [FILE]...

-l: 仅显示本地文件系统的相关系统;

-h: 单位换算;

-i: 显示inode的使用情况而非磁盘块的;

du命令:

用于评估文件大小

-s: 统计整个目录及内部所有文件总体大小;

-h: human-readable

交换分区:

创建交换分区文件系统:mkswap

free命令:查看内存使用状况

-m

-g

启动交换分区:

swapon [OPTION] [DEVICE]

-a: 启用/etc/fstab文件中定义的所有交换分区

禁用交换分区:

swapoff DEVICE

转载于:https://blog.51cto.com/11294919/1755558

Centos磁盘管理和文件系统管理相关推荐

  1. 磁盘管理及文件系统管理

    Linux磁盘管理及文件系统管理 涉及到的命令: mknod.fdisk.partx.kpartx.partprobe.ln.mkfs.mkfs.{ext2.ext3.ext4.xfs}.fsck.{ ...

  2. 20150901-Linux磁盘管理及文件系统管理

    占位,待完善... Linux系统管理 磁盘和文件系统管理: RAID, LVM; btrfs; 程序包管理:rpm, yum(dnf) Linux的网络管理; 进程和作业管理:htop, glanc ...

  3. 磁盘管理以及文件系统管理

    Linux 里面的磁盘命名格式 /dev/sda sd 表示一种串口设备 sata usb scsi sas /dev/hda hd 表示一种并口设备 ide 串并口是输入.输出接线插座的俗称,它位于 ...

  4. 【CentOS Linux 7】实验3【用户组群管理、磁盘分区及文件系统管理】

    Linux系统及应用---调研报告 [CentOS Linux 7]实验1[VMware安装.新建虚拟机:63个基础命令运行结果图] [CentOS Linux 7]实验2[Shell编程及应用] [ ...

  5. linux文件系统使用和管理,Linux磁盘使用及文件系统管理

    Linux磁盘使用及文件系统管理 新建 欢迎来到 来到大浪涛天的博客 ! 一.Linux磁盘使用及文件系统管理 1.mount 命令 mount [-fnrsvw] [-t vfstype] [-o ...

  6. CentOS 7磁盘分区及文件系统管理

    一.CentOS 7磁盘及文件系统特性 在CentOS 7,不管是IDE硬盘还是SATA硬盘,在linux里面的硬盘设备文件标识都为/dev/sd[a-z].(当然这一特性在CentOS 6中就已经实 ...

  7. Linux磁盘分区及文件系统管理之基础概念

    设备文件 关联至设备的驱动程序,是设备的访问入口 设备号 Major 主设备号,区分设备类型,用于标明设备所需要的驱动程序 Minor 次设备号,区分同种类型下的不同设备 创建设备文件 mknod 每 ...

  8. 磁盘分区和文件系统管理

    在linux系统中,如果需要在某个磁盘上存储数据.需按照以下流程: 将磁盘进行分区 创建文件系统 将文件系统挂载到目录下 在安装linux系统后需要添加更多的交换空间,可以通过添加一个交换分区或添加一 ...

  9. 磁盘分区以及文件系统管理练习题

    1.描述GPT是什么,应该怎么使用. 在说GPT分区之前,先说一下MBR分区. MBR分区是一种传统的分区机制,它适用于X86架构的32位和64位操作系统,位于磁盘的0号扇区(1扇区等于512字节). ...

最新文章

  1. R语言ggplot2可视化在散点图中的每个点上绘制两个错误条:常见的是垂直错误条,它对应于Y值点上的错误(error bar),添加与X轴(水平)相关的错误条(error bar)
  2. VS2013+OpenCV3.4.2编译
  3. phpMyAdmin 4.4.0 beta1 发布,MySQL 管理工具
  4. SQL中 不等于时存在null的问题
  5. cppan 命令_逐步解說:在命令列上編譯原生 C++ 程式
  6. Ecplise中怎样进行全局搜索
  7. android 百度map 一个layout加载多个mapview,android 百度地图API 使用Marker和InfoWindow
  8. (11)FPGA跨时钟域问题导致数据偶尔异常(学无止境)
  9. vue当前页引入js_「vue基础」新手入门导航(一)
  10. java mina 大文件传输_mina 传输java对象
  11. 《MFC游戏开发》笔记五 定时器和简单动画
  12. 专业的Excel管理工具LibXL V3.8.0发布 | 附下载
  13. Java 发送163邮件
  14. python将PDF转换成图片(pdf2image的使用)
  15. CSDN博客新增「评论置顶」、「定时发布」功能,翘首期盼的PC版「每日一练」上线!【第14期*2021.9.22】
  16. (附源码)SSM学科竞赛赛场安排系统JAVA计算机毕业设计项目
  17. VB.NET转C# Constants.vbCrLf替换
  18. 从sk_buff中的线性区与非线性区到 bpf_skb_pull_data
  19. 计算机PS属性怎么改,电脑不用ps怎么改图片分辨率 教你修改图片分辨率的方法...
  20. Log4j2漏洞发展历程及解决方案

热门文章

  1. TSS ESS RSS
  2. apt-get update : pulic key error
  3. ActiveX控件安装和IE安全设置之间的关系
  4. Git基础教程(三)
  5. 理光打印机如何设置邮件服务器,技术员帮您win10系统网络共享理光打印机的设置方法的操作办法...
  6. jooq生成records_Java 14 Records类
  7. 在Ubuntu 18.04上使用Nginx安装WordPress
  8. java多线程示例_Java线程示例
  9. 编程课课程感想和建议_最佳在线编程课程
  10. 编译运行一个java程序_如何从另一个Java程序编译和运行Java程序