Linux入门-3 Linux磁盘及文件系统管理
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...
- 主流的分区机制为MBR和GPT
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日志
带日志的文件系统有较强的稳定性,出现错误时可以进行回复。
- 带日志的文件系统会使用“两阶段提交”的方式进行磁盘操作:
- 文件系统将准备执行的事务的具体内容写入日志
- 文件系统进行操作
- 操作成功后,将事务的具体内容从日志中删去
- 好处是出现意外后可以通过日志文件进行恢复,缺点是丧失了一定的性能
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磁盘及文件系统管理的更多相关文章
- 鸟哥的linux私房菜之磁盘与文件系统管理
superblock:记录了该文件系统的整体信息包括inode/block的总量,使用量,剩余量以及文件系统的格式与相关信息. inode:记录档案的属性,一个档案占用一个inode,同事记录此档案所 ...
- linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包
一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格 ...
- Linux之磁盘与文件系统管理
磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...
- Linux磁盘与文件系统管理笔记
### Linux磁盘与文件系统管理 linux 最传统的文件系统格式是EXT2,centos7 默认文件系统是xfs(日志式文件系统) 磁盘的组成: 盘片 机械手臂 主轴马达 (机械硬盘) 磁盘格式 ...
- Linux学习笔记—Linux磁盘与文件系统管理(转载)
认识EXT2文件系统 文件的系统特性 Linux的正规文件系统为Ext2 文件数据除了文件实际内容外,还包括其他属性(文件权限.文件属性). 文件系统将这两部分数据分别存放在不同的块,权限和属性放在i ...
- Linux学习笔记之Linux磁盘及文件系统管理笔记
Linux磁盘及文件系统管理 CPU,memory(RAM),I/O i/o: disks,ehtercard disks:持久存储数据 接口类型: IDE(ata): 并口,133MB/s;并行总线 ...
- Linux磁盘与文件系统管理概要
Linux磁盘与文件系统管理 硬盘组成与分区 硬盘组成 圆形的盘片(主要记录数据) 机械手臂与磁头(可读取盘片上的数据) 主轴马达,转动盘片,让机械手臂的磁头在盘片上读取数据 扇区(Sector)为最 ...
- Linux入门篇(三)——文件与目录
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- 磁盘及文件系统管理(以及btrfs)
Linux系统管理 磁盘分区及文件系统管理 raid lvm 网络属性管理 程序包管理 sed及awk 进程查看和管理 内核管理(内核的编译和安装) 系统启动流程 定制,编译内核,busybox 系统 ...
- Linux入门——初识Linux
Linux入门——初识Linux 摘要:本文主要说明了Linux是什么,Linux发展历史,以及同Linux系统有关的一些基本知识. 简介 操作系统 Linux系统同Windows系统.Mac系统一样 ...
随机推荐
- 设置npm的镜像源
将npm的镜像源设置为淘宝镜像源 1.执行命令修改镜像源地址:npm config set registry https://registry.npm.taobao.org 2.重新加载修改后的地址: ...
- h2数据库的简单使用
1.登录H2数据库的WebConsole控制台 2.设置数据库连接 3.连接测试通过之后,点击[连接]按钮,登录到test数据库的webConsole 4.创建表 复制H2数据库提供的样例SQL脚本, ...
- 《LeetBook》leetcode题解(4): Median of Two Sorted Arrays[H]——两个有序数组中值问题
我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...
- js中json对象数组按对象属性排序
在实际工作经常会出现这样一个问题:后台返回一个数组中有i个json数据,需要我们根据json中某一项进行数组的排序. 例如返回的数据结构大概是这样: { result:[ {id:,name:'中国银 ...
- Python Qt的窗体开发的基本操作
本文章采用的是Qt4,是python(x,y) 套件中集成的,为啥不集成Qt5呢,懒得装啊:) 正文: 首先看成品: 这个程序的功能是输入原价和降价的百分比,计算出最后的价格. 设计器部分 然后就是开 ...
- Spring.Net---2、IoC/DI基本概念
---------------------------------------------------------------------------------- (1)IoC/DI的概念 IoC ...
- 以太坊-windows-私有链-搭建(非源码)
初 接触以太坊,只安装,不讲道理: 1.win10系统,64位 2.以太坊钱包 3.以太坊geth客户端 geth 和 钱包可以到ethfans.org的资料库里下载,那里提供国内镜像和官网地址. 钱 ...
- 撩课-Python-每天5道面试题-第8天
一. 解释下什么是闭包? 有怎样的场景作用? 概念 在函数嵌套的前提下 内层函数引用了外层函数的变量(包括参数) 外层函数, 又把 内层函数 当做返回值进行返回 这个内层函数+所引用的外层变量, 称为 ...
- Class类文件结构简介
Java跨平台的基础 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石,也是语言无关性的基础.Java虚拟机不和包括Java在内的任何语言绑定 ...
- [JAVA IDEA]在使用maven项目中,无法读取resources文件夹中的配置文件的一种解决方案
1.在通过配置文件来连接数据库时,在resouces文件中放入了db.properties配置文件,但无法正常读取到 读取配置文件信息的代码: InputStream input=JdbcUtil.c ...