1. 磁盘基本概念

1.1 磁盘结构:盘片(单碟vs多碟)、磁头(读写数据)

  • cylinder(柱面)
  • sector(扇区)
  • head(磁头)

1.2 磁盘在Linux中的表示

  • Linux所有设备都被抽象为一个文件,保存在/dev目录下
  • 磁盘的名称一般为hd[a-z]或sd[a-z]
  • IDE设备的名称为hd[a-z],SATA、SCSI、SAS、USB等设备的名称为sd[a-z]

sd表示series disk

1.3 分区概念

  • 设备名称+分区号:sda1, sda2...
  • 主流的分区机制为MBRGPT

1.3.1 MBR

Master Boot Record,主引导记录,传统的分区机制,应用于绝大多数使用BIOS的pc设备。

  • 支持32bit和64bit系统
  • 支持的分区数量有限
  • 只支持不超过2T的硬盘,超过2T将只能使用2T空间(有第三方解决方法)

主分区、扩展分区、逻辑分区
Linux最多支持63个IDE分区和15个SCSI分区

1.3.2 GPT

GUID Partition Table

  • 支持超过2T磁盘
  • 向后兼容MBR
  • 必须在支持UTFI的硬件上才能使用
  • 必须为64为系统
  • Mac、Linux系统都支持GPT分区
  • Win7 64bit、winServer2008 64bit支持GPT

2 使用fdisk进行磁盘管理

来自IBM的老牌分区工具,支持绝大多数操作系统,几乎所有Linux发行版都装有fdisk,rescue模式下也依然能够使用。

fdisk是基于MBR的分区工具

  • 只有超级用户权限才能运行
  • fdisk -l可以列出所有安装的磁盘及其分区信息
  • 使用fdisk /dev/sda可以对目标磁盘进行分区操作
  • 分区后需要使用partprobe命令让内核更新分区信息,否则需要重启才能识别新分区
  • /proc/partitions文件也可以用来查看分区信息

3 Linux文件系统

操作系统通过文件系统管理文件及数据,磁盘或分区需要创建文件系统之后才能被操作系统使用,创建文件系统的过程又称之为格式化。

  • 没有文件系统的设备又称之为裸(raw)设备
  • 常见的文件系统fat32, NTFS, ext2, ext3, ext4, xfs, HFS
  • 文件系统之间的区别:日志、支持的分区大小、支持的单个文件大小、性能等

mke2fs

命令mke2fs用来创建文件系统
mke2fs -t ext4 /dev/sda1

-b blocksize 指定文件系统快大小
-c 建立文件系统时检查损坏块
-L label 指定卷标
-j 建立文件系统日志

  • 块大小默认4k
  • ext3/ext4默认带日志,不需要-c
  • mkfs也能创建文件系统,更简单,但参数少,不能精细控制

dumpe2fs

查看分区的文件系统信息
dumpe2fs /dev/sda1

需要对文件系统做微调时使用

JOURNAL日志

带日志的文件系统有较强的稳定性,出现错误时可以进行回复。

  • 带日志的文件系统会使用“两阶段提交”的方式进行磁盘操作:

    1. 文件系统将准备执行的事务的具体内容写入日志
    2. 文件系统进行操作
    3. 操作成功后,将事务的具体内容从日志中删去
  • 好处是出现意外后可以通过日志文件进行恢复,缺点是丧失了一定的性能

e2label

e2label /dev/sda1 显式系统标签
e2label /dev/sda1 label 设标签

fsck

fsck /dev/sda1
file system check,检查并修复损坏的文件系统

  • 使用-y参数不提示而直接进行修复
  • 默认会自动判断文件系统类型,但如果损坏严重,则用-t指定文件系统
  • 对于识别为文件的损坏数据(文件系统无记录),fsck会将该文件放入lost+found目录
  • 系统启动时会对磁盘进行fsck

4 Linux文件系统挂载管理

磁盘或分区创建好文件系统之后,需要挂载到一个目录才能使用。
windows和mac会自动挂载,windows上称之为c盘、d盘等。
LInux需要手动挂载或配置系统进行自动挂载。

mount

mount /dev/sda1(需要挂载的磁盘) /mnt(挂载点)

  • 不带参数,显示所有已挂载的文件系统
  • -t指定文件系统类型
  • -o指定挂载选项
    • ro, rw以只读或读写形式挂载,默认rw
    • sync不使用缓存,而是将所有操作直接写入磁盘
    • async使用缓存,默认
    • noatime每次访问文件时不更新文件的访问时间,可以提高性能
    • atime每次访问文件时更新文件的访问时间,默认
    • remount重新挂载

umount

相当于windows的弹出
umount 文件系统或挂载点
umount /dev/sda1 == umount /mnt/

如果提示device is busy,则表示文件系统正在被使用,无法卸载,可以使用以下命令查看使用文件系统的进程:
fuser -m /mnt/
也可以用以下命令查看正在被使用的文件:
lsof /mnt/(list open file)

自动挂载

配置/etc/fstab用来自定义需要自动挂载的文件系统,fstab中每一行代表一个挂载配置,格式如下:

/dev/sda1 /mnt ext4 defaults 0 0
待挂载设备 挂载点 文件系统 挂载选项 dump、fsck相关选项
  • 要挂载的设备也可以用label进行识别,使用LABEL=DISKLABEL取代/dev/sda1
  • mount -a命令会挂载所有fstab中定义的自动挂载选项

Linux入门-3 Linux磁盘及文件系统管理的更多相关文章

  1. 鸟哥的linux私房菜之磁盘与文件系统管理

    superblock:记录了该文件系统的整体信息包括inode/block的总量,使用量,剩余量以及文件系统的格式与相关信息. inode:记录档案的属性,一个档案占用一个inode,同事记录此档案所 ...

  2. linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包

    一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格 ...

  3. Linux之磁盘与文件系统管理

    磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...

  4. Linux磁盘与文件系统管理笔记

    ### Linux磁盘与文件系统管理 linux 最传统的文件系统格式是EXT2,centos7 默认文件系统是xfs(日志式文件系统) 磁盘的组成: 盘片 机械手臂 主轴马达 (机械硬盘) 磁盘格式 ...

  5. Linux学习笔记—Linux磁盘与文件系统管理(转载)

    认识EXT2文件系统 文件的系统特性 Linux的正规文件系统为Ext2 文件数据除了文件实际内容外,还包括其他属性(文件权限.文件属性). 文件系统将这两部分数据分别存放在不同的块,权限和属性放在i ...

  6. Linux学习笔记之Linux磁盘及文件系统管理笔记

    Linux磁盘及文件系统管理 CPU,memory(RAM),I/O i/o: disks,ehtercard disks:持久存储数据 接口类型: IDE(ata): 并口,133MB/s;并行总线 ...

  7. Linux磁盘与文件系统管理概要

    Linux磁盘与文件系统管理 硬盘组成与分区 硬盘组成 圆形的盘片(主要记录数据) 机械手臂与磁头(可读取盘片上的数据) 主轴马达,转动盘片,让机械手臂的磁头在盘片上读取数据 扇区(Sector)为最 ...

  8. Linux入门篇(三)——文件与目录

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  9. 磁盘及文件系统管理(以及btrfs)

    Linux系统管理 磁盘分区及文件系统管理 raid lvm 网络属性管理 程序包管理 sed及awk 进程查看和管理 内核管理(内核的编译和安装) 系统启动流程 定制,编译内核,busybox 系统 ...

  10. Linux入门——初识Linux

    Linux入门——初识Linux 摘要:本文主要说明了Linux是什么,Linux发展历史,以及同Linux系统有关的一些基本知识. 简介 操作系统 Linux系统同Windows系统.Mac系统一样 ...

随机推荐

  1. windows 3389 远程

    3389常用命令: 1.查询终端端口 REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinSt ...

  2. transform旋转变换效果

    div{ transform:rotate(7deg); -ms-transform:rotate(7deg); /* IE 9 */ -moz-transform:rotate(7deg); /* ...

  3. vue+webpack项目中使用dev-server搭建虚拟服务器,请求json文件数据,实现前后台分离开发

    在项目开发中,前后台分离,做了假数据,项目使用vue2.0重构,后台也推到重来了,为了不耽误开发进程,我做了虚拟的数据请求,使用vue-cli脚手架搭建的项目文件中dev-server搭建虚拟api请 ...

  4. Android运行时权限开启问题

    参考: http://www.cnblogs.com/whoislcj/p/6072718.html(重点这篇) https://www.jianshu.com/p/b4a8b3d4f587 http ...

  5. webpack 报错 No PostCSS Config found 解决方案。

    webpack 报错 No PostCSS Config found  这个问题我在百度上找了好久,也没有找到解决方案,最后没有办法只能自己去啃官方文档,本案例在本人的webpack 学习感悟中已经写 ...

  6. Command操作数据

    Command常用属性 CommandText             要下达至数据源的命令 CommandTimeout          出错时等待时间 //定义一个变量来存储对数据库操作的字符串 ...

  7. jQuery 自制上传头像插件-附带Demo实例(ajaxfileupload.js第三弹)

    这篇文章主要是对前两篇关于ajaxfileupload.js插件的文章 <ASP.NET 使用ajaxfileupload.js插件出现上传较大文件失败的解决方法(ajaxfileupload. ...

  8. WCF IIS 部署错误处理

    做Web接口,原来一直用Web Service的,但是.Net 3.5后,Web Service变成了WCF.代码的编写上,把WebMethod特性改成了OperationContract,然后把方法 ...

  9. OpenStack IceHouse 部署 - 5 - 网络节点部署

    Neutron网络服务(网络节点)     目录 [隐藏]  1 参考 2 前置工作 2.1 调整内核参数 3 安装 4 配置 4.1 keystone对接 4.2 rabbitmq对接 4.3 me ...

  10. OpenStack IceHouse 部署 - 4 - 计算节点部署

    Nova计算服务(计算节点)  参考 本页内容依照官方安装文档进行,具体参见Configure a compute node(nova service) 前置工作 数据库 由于我们在Nova(计算管理 ...