9 文件系统管理

9.1 回顾分区和文件系统

分区类型

主分区:总共最多只能分四个

扩展分区:只能有一个,主分区加扩展分区最多有四个必须再划分成逻辑分区才能使用。

逻辑分区:在扩展分区中划分的

    IDE硬盘最多支持59个逻辑分区

    SCSI硬盘最多支持11个逻辑分区

 

—————————————————————————————————————————————————

 

分区表示方法

主分区1    /dev/sda1

主分区2    /dev/sda2

主分区3    /dev/sda3

扩展分区   /dev/sda4

    逻辑分区1    /dev/sda5

    逻辑分区2    /dev/sda6

    逻辑分区3    /dev/sda7

.

.

.

 

主分区1    /dev/sda1

扩展分区   /dev/sda2

    逻辑分区1    /dev/sda5

    逻辑分区2    /dev/sda6

    逻辑分区3    /dev/sda7

.

.

.

 

—————————————————————————————————————————————————

 

文件系统

ext2

ext文件系统的升级版本,Red Hat Linux7.2版本以前的系统默认都是ext2文件系统。

1993年发布,最大支持16TB的分区和最大2TB的文件(1TB=1024GB=1024*1024KB

 

ext3

ext3文件系统是ext2文件系统的升级版本,最大的区别就是带日志功能

以在系统突然停止时提高文件系统的可靠性。支持最大16TB的分区和最大2TB的文件。

 

ext4

它是ext3文件系统的升级版。ext4在性能、伸缩性、可靠性方面进行了大量改进。

ext4的变化可以说是翻天覆地的,比如向下兼容ext3、最大1EB文件系统和16TB文件,无限数量子目录,Extents连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。是CentOS6.3的默认文件系统

1EB=1024PB=1024*1024TB

 

—————————————————————————————————————————————————

 

9.2 文件系统常用命令

9.2.1 df du dumpe2fs

文件系统查看命令df

df  #可以看到所有分区

df 选项 挂载点    report file system disk space usage

-a 显示所有的文件系统信息,包括特殊文件系统,如/proc/sysfs

-h 使用习惯单位显示容量,如KBMBGB

-T 显示文件系统类型

-m MB为单位显示容量

-k KB为单位显示容量。默认就是以KB为单位

 

—————————————————————————————————————————————————

 

统计目录或文件大小

du 选项 目录或文件名  estimate file space usage

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

-h 使用习惯单位显示磁盘占用量,如KBMBGB

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

 

du更慢,更耗费资源

 

du命令和df命令的区别

du用于看文件大小

df用于看剩余空间

df命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)

du命令是面向文件的,只会计算文件或目录占用的空间

 

Linux服务器应该定期重启,以释放程序占用的磁盘空间

游戏、下载、在线电影等高负载服务器应每周重启一次

网站应每个月重启一次

—————————————————————————————————————————————————

 

文件系统修复命令fsck    check and repair a Linux file system

fsck 选项 分区设备文件名

-a 不用显示用户提示,自动修复文件系统

-y 自动修复。和-a作用一致,不过有些文件系统只支持-y

 

此命令是底层修复命令,系统会自动执行,知道作用就好,不需要自己操作,可能崩溃

—————————————————————————————————————————————————

 

显示磁盘状态命令dumpe2fs    dump ext2/ext3/ext4 filesystem information

dumpe2fs 分区设备文件名

可以查看分区的数据块有多大

 

dumpe2fs /dev/sda1

—————————————————————————————————————————————————

 

9.2.2 挂载命令

1、查询与自动挂载

mount -l

#查询系统中已经挂载的设备,-l会显示卷标名称

/proc  /sys 是内存

 

mount -a

#依据配置文件/etc/fstab的内容,自动挂载

—————————————————————————————————————————————————

 

2、挂载命令格式

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

-t 文件系统:加入文件系统类型来指定挂载的类型,可以是ext3ext4iso9660等文件系统

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

-o 特殊选项:可以指定挂载的额外选项。针对分区

 

atime/noatime

更新访问时间/不更新访问时间。

访问分区时,是否更新文件的访问时间,默认更新

 

async/sync

异步/同步

默认为异步

 

auto/noauto

自动/手动

mount -a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动

 

defaults

定义默认值,相当于rw suid dev exec auto nouser async 这七个选项

 

exec/noexec

执行/不执行

设定是否允许在文件系统中执行可执行文件,默认exec允许

如果是文件服务器,可以设置为noexec

 

remount

重新挂载已经挂载的文件系统,一般用于指定修改特殊权限

 

rw/ro

读写/只读

文件系统挂载时,是否具有读写权限,默认是rw

 

suid/nosuid

具有/不具有SUID权限

设定文件系统是否具有SUIDSGID的权限,默认是具有

 

user/nouser

允许/不允许普通用户挂载

设定文件系统是否具有SUIDSGID的权限,默认是具有

 

usrquota

写入代表文件系统支持用户磁盘配额

默认不支持

 

grpquota

写入代表文件系统支持组磁盘配额

默认不支持

 

 

例子:

mount -o remount,noexec /home

#重新挂载/home分区,并使用noexec权限

cd /home

vi hello.sh    

chmod 755 hello.sh

./hello/sh #提示权限不够

mount -o remount,exec /home

—————————————————————————————————————————————————

 

9.2.3 挂载光盘与U

挂载光盘

1、建立挂载点

mkdir /mnt/cdrom/

 

2、挂载光盘,两个可选命令

mount -t iso9660 /dev/cdrom /mnt/cdrom/

mount /dev/sr0 /mnt/cdrom

#/dev下,cdromsr0的软连接方式

 

 

卸载命令

umount 设备文件名或挂载点

 

例子:

umount /mnt/cdrom

—————————————————————————————————————————————————

 

挂载U

1、查看U盘设备文件名

fdisk -l

 

2、挂载U

mount -t vfat /dev/sdb1 /mnt/usb

 

FAT16识别为FAT

FAT32识别为VFAT

注意:Linux默认是不支持NTFS文件系统的

—————————————————————————————————————————————————

 

9.2.4 挂载NTFS文件系统

两种方法:

1、内核编译,将NTFS的驱动加入进来,用的极少

2、第三方软件

   下载NTFS-3G插件

   http://www.tuxera.com/community/ntfs-3g-download/

 

tar -zxvf ntfs-3g_ntfsprogs-2014.2.15.tgz

cd ntfs-3g_ntfsprogs-2014.2.15

./configure

make

make install

mount -t ntfs-3g 分区设备文件名 挂载点

—————————————————————————————————————————————————

 

9.3 fdisk分区

Partition table manipulator for Linux

手工分区命令

 

fdisk命令分区过程

1、添加新硬盘

2、查看新硬盘

fdisk -l

Linux通过ID的方式来识别分区

83 Linux的标准分区

82 swap分区

5  Extended分区

 

3、使用fdisk命令分区

fdisk /dev/sdb

 

a 设置可引导标记

b 编辑bsd磁盘标签

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

d 删除一个分区

l 显示已知的文件系统类型。82Linux swap分区,83Linux分区

m 显示帮助菜单

n 新建分区

o 建立空白DOS分区表

p 显示分区列表

q 不保存退出

s 新建空白SUN磁盘标签

t 改变一个分区的系统ID

u 改变显示记录单位

v 验证分区表

w 保存退出

x 附加功能(仅专家)

 

4、重新读取分区表信息

partprobe  #避免重启

 

5、格式化分区  build a Linux file system

mkfs -t ext4 /dev/sdb1

#不能格式化扩展分区

6、建立挂载点并挂载

mkdir /disk1

mount /dev/sdb1 /disk1

 

此时,每次启动都要手动挂载硬盘分区

—————————————————————————————————————————————————

分区自动挂载与fstab文件修复

 

1/etc/fstab文件

第一字段:分区设备文件名或UUID(硬盘通用唯一识别码)

第二字段:挂载点

第三字段:文件系统名称

第四字段:挂载参数

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

第六字段:指定分区是否被fsck检测,0代表不检测,其他数字代表检测的优先级,那么当然1的优先级比2高(手动添加的分区应小于等于2

 

查看UUID命令

dumpe2fs -h /dev/sdb1

 

每个分区都有lost+found目录用于备份

 

 

2、分区自动挂载

/dev/sdb1  /disk1  ext4  defaults  1 2

 

mount -a

#依据配置文件/etc/fstab的内容,自动挂载

 

 

3/etc/fstab文件修复

mount -o remount,rw /

#重新挂载根分区为读写权限

然后修改fstab配置

—————————————————————————————————————————————————

 

新建swap分区

 

1、新建swap分区

fdisk /dev/sdb

#将分区ID改为82

 

2、格式化

mkswap /dev/sdb6    #mkswap   set up a Linux swap area

 

3、加入swap分区

swapon /dev/sdb6

 

swapoff /dev/sdb6

#取消swap分区

 

4swap分区开机自动挂载

vi /etc/fstab

 

/dev/sdb6  swap  swap  defaults 0 0

 

5free命令

#查看内存与swap分区使用情况

cached(缓存):

把读出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取

加速了数据的读取过程

 

buffers(缓冲):

在写入数据时,先分散的写入操作保存到内存中,当达到一定程度再集中写入硬盘

减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入过程

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 桌面玩家指南:09. X Window 的奥秘

Linux 桌面玩家指南:09. X Window 的奥秘 原文:Linux 桌面玩家指南:09. X Window 的奥秘特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结…

Storm教程1理论介绍

流式计算的历史: 早在7、8年前诸如UC伯克利、斯坦福等大学就开始了对流式数据处理的研究,但是由于更多的关注于金融行业的业务场景或者互联网流量监控的业务场景,以及当时互联网数据场景的限制,造成了研究多是基于对传统数据库处理的流式化&…

梯度下降原理及Python实现

梯度下降算法是一个很基本的算法,在机器学习和优化中有着非常重要的作用,本文首先介绍了梯度下降的基本概念,然后使用python实现了一个基本的梯度下降算法。梯度下降有很多的变种,本文只介绍最基础的梯度下降,也就是批…

dagger2的初次使用

一、使用前准备 1、打开app的build.gradle文件: 顶部停用apt插件: //添加如下代码,应用apt插件 apply plugin: com.neenbedankt.android-apt dependencies中添加依赖: //Dagger2compile com.google.dagger:dagger:2.4apt com.goog…

Storm教程2安装部署

Storm 安装部署 部署Storm集群需要依次完成的安装步骤: 1.安装jdk6及以上版本;   2. 搭建Zookeeper集群;   3. 安装Storm依赖库;   4. 下载并解压Storm发布版本;   5. 修改storm.yaml配置文件;   6…

matplotlib一些常用知识点的整理,

本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找。 强烈推荐ipython 无论你工作在什么项目上,IPython都是值得推荐的。利用ipython --pylab,可以进入PyLab模式,已经导入了matplotlib库与相关软件包(例如…

JAVA课程09

package 月份输出;import java.util.*;public class 月份输出 {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc new Scanner(System.in);int s sc.nextInt();String a[] {"January","February","March&q…

Storm教程3编程接口

Spouts Spout是Stream的消息产生源,Spout组件的实现可以通过继承BaseRichSpout类或者其他Spout类来完成,也可以通过实现IRichSpout接口来实现。 需要根据情况实现Spout类中重要的几个方法有: open方法 当一个Task被初始化的时候会调用此…

梳理操作系统概论

1、用一张图总结操作系统的结构、功能特征、采用的技术和提供服务方式等。 2、用一张图描述CPU的工作原理。 3、用一张图描述系统程序与应用程序、特权指令与非特权指令、CPU状态、PSW及中断是如何协同工作的? 转载于:https://www.cnblogs.com/ljgljg/p/10503190.ht…

机器学习01简介

Machine Learning 是人工智能的核心,主要使用归纳、综合而不是演绎。 让计算机模拟人类行为,以获取新的知识或技能 重新组织已有的知识结构使之不断改善自身性能 一个程序能从经验 E 中学习,解决任务 T,达到性能度量值P&#xf…

位置指纹法的实现(KNN)

基本原理 位置指纹法可以看作是分类或回归问题(特征是RSS向量,标签是位置),监督式机器学习方法可以从数据中训练出一个从特征到标签的映射关系模型。kNN是一种很简单的监督式机器学习算法,可以用来做分类或回归。 对于…

室内定位系列 ——WiFi位置指纹(译)

摘要 GPS难以解决室内环境下的一些定位问题,大部分室内环境下都存在WiFi,因此利用WiFi进行定位无需额外部署硬件设备,是一个非常节省成本的方法。然而WiFi并不是专门为定位而设计的,传统的基于时间和角度的定位方法并不适用于WiFi…

机器学习02线性回归、多项式回归、正规方程

单变量线性回归(Linear Regression with One Variable) 预测器表达式: 选择合适的参数(parameters)θ0 和 θ1,其决定了直线相对于训练集的准确程度。 建模误差(modeling error)&a…

最大乘积

给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) def solve():n input()a input().split()for i in range(len(a)):a[i] in…

机器学习03Logistic回归

逻辑回归 (Logistic Regression) 目前最流行,使用最广泛的一种学习算法。 分类问题,要预测的变量 y 是离散的值。 逻辑回归算法的性质是:它的输出值永远在 0 到 1 之间。 逻辑回归模型的假设是: 其中&a…

基础架构系列汇总

为了方便查找,把基础架构系统文章按时间正序整理了一下,记录如下: 1. 基础架构之日志管理平台搭建及java&net使用 2. 基础架构之日志管理平台及钉钉&邮件告警通知 3. 基础架构之分布式配置中心 4. 基础架构之分布式任务平台 5. 基础架…

CNN理解比较好的文章

什么是卷积神经网络?为什么它们很重要? 卷积神经网络(ConvNets 或者 CNNs)属于神经网络的范畴,已经在诸如图像识别和分类的领域证明了其高效的能力。卷积神经网络可以成功识别人脸、物体和交通信号,从而为机…

Windows 安装Angular CLI

1、安装nvm npm cnpm nrm(onenote笔记上有记录) 参考:https://blog.csdn.net/tyro_java/article/details/51232458 提示:如果发现配置完后,出现类似“npm不是内部命令……”等信息。 可采取如下措施进行解决—— 检查环…

机器学习04正则化

正则化(Regularization) 过拟合问题(Overfitting): 如果有非常多的特征,通过学习得到的假设可能能够非常好地适应训练集 :代价函数可能几乎为 0), 但是可能会不能推广到…

Adaboost算法

概述 一句话概述Adaboost算法的话就是:把多个简单的分类器结合起来形成个复杂的分类器。也就是“三个臭皮匠顶一个诸葛亮”的道理。 可能仅看上面这句话还没什么概念,那下面我引用个例子。 如下图所示: 在D1这个数据集中有两类数据“”和“-”…