文件系统管理-2| 学习笔记

简介: 快速学习文件系统管理-2

开发者学堂课程【Linux 磁盘与文件系统管理:件系统管理-2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/589/detail/8331


文件系统管理-2

内容简介:

一、文件挂载配置文件

二、工具 dd

三、练习

四、什么是 RAID


一、文件挂载配置文件

/etc/fstab 每行定义一个要挂载的文件系统

1要挂载的设备或伪文件系统

设备文件

LABEL:LABEL="" UUID:UUID=""

伪文件系统名称: procsysfs

 

2、挂载点

3、文件系统类型: ext4xfsnfsnone


4、挂载选项: defaults,ac,bind


5、转储频率:0:不做备份,1:每天转储2:每隔一天转储

6、fsck 检查的文件系统的顺序:允许的数字是0,1和2

0:不自检

1:首先自检;一般只有 rootfs 才用

2:非 rootfs 使用

处理交换文件和分区

交换分区是系统 RAM 的补充基本设置包括:

创建交换分区或者文件

使用 mkswap 写入特殊签名

在 /etc/fstab 文件中添加适当的条目使用 swapon-a 激活交换空间

挂载交换分区

启用: swapon

swapon [OPTION]…. [DEVICE]

-a: 激活所有的交换分区,-p PRIORITY: 指定优先级 /etc/fstab:pri=value

禁用: swapoff[OPTION].. [DEVICE]

SWAP 的优先级

可以指定 swap 分区0到32767的优先级,值越大优先级越高

如果用户没有指定,那么核心会自动给 swap 指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的 swap,会给这个优先级减一先添加的 swap 的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)优化性能:分布存放,高性能磁盘存放

移动介质。

挂载意味着使外来的文件系统看起来如同是主目录树的一部分访问前、介质必须被挂载摘除时,介质必须被卸载

按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软盘、USB等等)

挂载点通常在 /media或/mnt 

track/cylinder:10bit 2*10=1024 head数:8bit 255

512*63*1024*255

MBR

主分区:1-4

扩展分区:扩展+主分区 <=4逻辑分区:

k,m,g,t;P;e,z,y,b,n,d

实验:分区表的备份和还原

[root@centos6~]#blkid -U'sed -rn 's#^UUID=(.*)/ .*#\1#p’ /etc/fstab/dev/sda2

在 centos6 之前版手动创建的 ext 分区,默认没有 ACL 功能

一个设备可以同时挂载到多个目录一个目录可挂载多个设备呢?

实验:增加一块新硬盘,分区,创建文件系统 XFS|EXT4,挂载

实验: /etc/fstab 文件错误,无法启动,故障排错 centos6,7

实验:实现 swap 分区

迁移 /home 目录到新分区中

使用光盘

在图形环境下自动启动挂载 /run/media/<user>/<label> 否则就必须被手工挂载.

mount/dev/cdrom/mnt/ eject 命令卸载或弹出磁盘创建 ISO 文件

cp/dev/cdrom /root/centos7.iso mkisofs -r-o /root/etc.iso/etc  刻录光盘

wodim-v-eject centos.iso

常见工具

文件系统空间占用等信息的查看工具:

df [OPTION]... [FILE].. -H 以1000为单位-T文件系统类型

-h:human-readable

-i: inodes instead of blocks -P:以 Posix 兼容的格式输出查看某目录总体空间占用状态:

du [OPTION]... DIR -h:human-readable

-s:summary --max-depth

//FTP 文件不仅可以挂载普通的文件系统,事实上也可以挂载一些其他的文件系统,例如 NFSNFS 是网络文件系统,意味着可以把网络中的共享资源,挂载到本机,目前来讲,使用各种设备都是本机的设备,例如本地硬盘光,本地光盘,本地目录。

此外,swap 交换分区交换设备,它是用来模拟内存来使用的。Swap 可以当物理内存不够用的时候,会拿 swap 这块空间来临时存放。

一部分内存数据把内存中的空间腾出来,运行那些急需要内存的应用程序,所以它可以模拟内存使用,这就叫 swap,因为它是内存和磁盘交换数据所以称为交换分区通常来讲设置一定分区来模拟来来实现,

分区一般大,当内存不大的时候,比方说内存四个G以内两个 G,那一般会乘二,那就是内存两个 Gswap 设四个 G内存512g乘二一个T硬盘出去了是不现实的,一般来讲超过一定的值,不推荐,实际上 8G 以上不推荐乘2,64G内存,交换分区,一般设置8G 或者16G 就够用,因为内存那么大,只要加个 swap 做一个辅助功能就可以了,避免说4G 真的空间用完了,系统一点空间没有了,系统会崩溃的。

所以准备临时存放磁暴分区做辅助就够了,一般来讲8G16g就够用。

预留太大也没有意义,在系统中来设置swap虽然系统中本身已经有了swap分区,但是 swap 比较特殊,用的命令是看不到的。命令里边有 swap 设置BLKID 是一个特殊的文件系统,和别人的文件系统都不一样,是专门的一个文件系统,用的是 SD5,看看 Sd5 设备挂载信息不能看到。也就是命令默认是不显示 swap 挂载信息的。FFTB 文件中挂载点竟然写的是 swap,并没有写根和目录。

swap 准确的说并不是挂载到文件系统,因为 swap 是模拟内存,所以根本就不需要挂载到目录里,所以特殊功能就决定了写法,表示直接系统,格式就是FTP 文件来配置 swap,假设内存现在不够用了,物理内存通过飞命令是可以看到的。

当前是两个 G 内存,假设因为生产需求,加了一条内存内存以后,Swap 希望随之而调整,假设内存在不大的情况下,一般都是乘二的。

假设要把它内存条了四个G,那现在乘二不就变成八个G的 swap 就可以了,那八个G swap,现在只有四个G,怎么再增加,或者说把原来 swap 所有变成八个 G?

注意,Swap 目前来讲是拿一个分区来实现的,用的是 SD5分区能变大变小吗?原来是四个 G,现在给他变成八个技能变吗分区是一个连续的空间,一旦分完了,就不能再改变了,除非删了重新建。

虽然说号称软件可以调分区大小这些东西都是不可靠的。

所以一般分区认为是不可变化的。当然现在四个G,已经分了这么大了,分小了,想变成8个G,可以采取另外一种思路,就是可以再创建一个分区,原来的已经有四个G,再增加4总共8个

Swap分区用来和内存交换的,所以速度很大程度上影响进行的,所以swap分区强烈推荐把它存放在一个高性能的磁盘上。

如果是固态硬盘最好了,但是如果没有固态硬盘,优化swap,把它放到一个硬盘的最快的位置,最外圈快,当然现在swap分区使用Sd5做的的SUV,不是外圈,已经偏离,所以比方说拿一个硬盘的分出一个C1或者第一某一个外圈的空间速度更快,比方说在D硬盘上分出一个分区来,用外道的空间。

这样的话,给它设置一个swap,SDD是没有硬盘分区的,从头到尾来实现一个八个G的swap,先先分区fdisk dev/sdd,分区直接分个主区,默认设区市2048

这是默认值要把83改成对应的swap相应的文件系统才行。相应的文件系统在swap上用的文件系统的ID是82,就要改成82,修改类型,要改成了82以后,其他就不用改退出就行了

输入L,改成了82,存盘退出

存盘没有任何警报说明已经同步了,二步是MK创建文件系统,但是swap文件系统命令不一样,不是用这个命令,用专门的mk swap,然后顺便制定分区的名称,第一出现了swap设备分区想永久的存到磁盘的挂载上,改文件参考格式

第二点,dv1把UID自动的复制到当前的VIP界面里面,然后把用不着的删掉,然后把去掉,如果不去掉的话,可能会有问题,所以最好还是把对应的后面删了

对应的格式,参考前面的例子

四个 G 是旧的那个四 G,正常加上变成八个 G 才对moun 是针对传统分区的针对别的是不起作用的,所以要用专门的 swapon- s,但是实际上 S 是可以查看当前有哪些 swap 设备正在生效,看到只有一个生效的是 a5,现在让他生效,swapon- a,swapon-a 之后就开始生效了,-S 生效然后确实是8个 g,目前来讲swap就可以用

当然 swap 在使用的时候,能看到当前的使用情况,现在一点都没用,这两个设备都是 swap,实际上这个文件内容一模一样。

能看到,有个优先级的编号,优先级高,自然就是先往上写,当然越高A5优先级高,这个数字越大,优先级外圈空间速度理论上是比内圈空间速度要快,希望把优先级调高一点,可以修改swap文件,修改的优先级,值比负一高就行,比方说随便找一个数字,当然现在改了不能立即生效它不会立即生效的把这个设备先禁用。

用 asp 禁用,一旦禁用,看不到了,然后再重新启用,启用之后再来看优先级不够用,要产生大的文件,把内存用的差不多了才开始使用往垃圾箱里扔。PS GA,瞬间就要求内存立即分配三个G空间,总共内存才两个 G。赶紧去swap,发现已经开始使用,不用优先级体现出来这就是优先级

swap 实际上目前来讲,虽然空间用了,如果说这个数据用不到了,这个空间没有这就是 swap 的启用

把原来的那个区分的 top 分的是两个 G,后来想改成 4G,步骤错了。或者是姿势错误,就是 swap 的条件,swap 可以拿,必须是发现有一个硬盘空间太满,一个硬盘分区快百分百了,那这个分区要满了系统就该故障崩溃,腾点空间敢删数据没有 swap。

没有分区,有 swap 功能拿文件功能来用,这个文件就放在那个99%时期,所以实际上可以把它移到一个稍微空间大一点的,别的分区,是不是就腾出点空间来。横着空间来,至少保证系统不会说满了,

慢慢去在磁盘上找一些用不到的文件,再给腾出点儿,至少不能眼看,满了就会出问题的。

以文件方式提供 swap之所以拿文件方式提供swap,后来发现需要 swap 了,拿文件来做,因为文件不需要独立分区,发一个文件就可以。创建文件的方式提供swap 功能增加一个两个 G 报告

要求两个 G,比较慢,内存用了这么多,Swap 也用了大量的空间,写两个字,它就立即要求两个 G 的空间。大量的访问,马上有可能音量过大,造成系统过于繁忙当前的 swap 文件已经生成出来了,也结束了

二、工具 dd

工具 dd

Dd 命令: convert and copy a file 用法:

dd if=/PATH/FROM/SRCof=/PATH/TO/DEST bs=#:blotk size 复制单元大小 count=#: 复制多少个 bs

of=file 写到所命名的文件而不是到标准输出

if=file 从所命名文件读取而不是从标准输入

bs=size 指定块大小(既是是 ibs 也是 obs)

ibs=size 一次读 size 个 byte

obs=size 一次写 size 个 byte

cbs=size 一次转化 size 个 byte

skip=blocks 从开头忽略 blocks  ibs 大小的块

seek=blocks  从开头忽略 blocks 个obs 大小的块

count=n 只拷贝 n 个记录

conv=conversion[conversion...] 用指定的参数转换文件转换参数:

Ascii 转换 EBCDIC  ASCII ebcdic 转换 ASCII  EBCDIC Icase 把大写字符转换为小写字符  ucase 把小写字符转换为大写字符 nocreat 不创建输出文件 noerror 出错时不停止 notrunc 不截短输出文件

Sync 把每个输入块填充到 ibs 个字节,不足部分用空( NUL )字符补齐 Fdatasync 写完成前,物理写入输出文件

[root@centos6~ ]#

[root@centos6~]#

[root@centos6~ ]#

[root@centos6~]#

[root@centos6~j#cat > f2

123456 AC

[root@centos6 ~]#cat > f1

abcdefghi AC

[root@centos6 ~]#cat f1

abcdefahi

[root@centos6 ~]#cat f2

123456

[root@centos6 ~]#dd if=f2 of=f1bs=1count=2 skip=3 seek=42+0 records in2+0 records out

2 bytes (2 B) copied,0.000540136 s,3.7 kB/s

[root@centos6 ~]#cat f1 abcd45[root@centocat >f1

abcdefghi

[root@centos6 ~]#cat f1

abcdefgh1

[root@centos6 ~]#dd if=f2 of=f1 bs=1 count=2 skip=3 seek=4 conv=notrun2+0 records in2+0records out

2 bytes(2 B)copied,0.00103179 s,1.9 kB/s

[root@centos6 ~]#cat f1

abcd45ghi

[root@centos6~]#

备份MBR

dd if=/dev/sda of=/tmp/mbrbakbs=512 count=1

破坏MBR中的bootloader

dd if=/dev/zero of=/dev/sdabs=64count=1 seek=446

有一个大与 2K 的二进制文件 fileA 。现在想从第64个字节位置开始读取,需要读取的大小是 128Byts 

又有 fileB 想把上面读取到的128Bytes 写到第32个字节开始的位置,替换 128Bytes 

实现如下

ddif=fileAof=fileBbs=1count=128skip=63seek=31 conv=notrunc

备份:

dd if=/dev/sdxof=/dev/sdy

将本地的 /dev/sdx 整盘备份到  /dev/sdy dd if=/dev/sdxof=/path/to/image

/dev/sdx 全盘数据备份到指定路径的 image 文件 dd if=/dev/sdx|gzip>/path/to/image.gz

备份 /dev/sdx 全盘数据,并利用 gzip 压缩,保存到指定路径恢复:

dd if=/path/to/image of=/dev/sdx将备份文件恢复到指定盘

gzip-dc/path/to/imagegz|ddof=/dev/sdx将压缩的备份文件恢复到指定盘

拷贝内存资料到硬盘

dd if=/dev/mem of=/root/membin bs=1024 将内存里的数据拷贝到 root 目录下的 membin 文件从光盘拷贝 iso 镜像

dd if=/dev/cdrom of=/root/cd.iso

拷贝光盘数据到 root 文件夹下,并保存为 cdiso 文件销毁磁盘数据

dd if=/dev/urandomof=/dev/sda1

利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作以后

/dev/sda1 将无法挂载,创建和拷贝操作无法执行

得到最恰当的 block size

dd if=/dev/zero of=/root/1Gbfilebs=1024count=1000000 dd if=/dev/zero of=/root/1Gb.file bs=2048count=500000 dd if=/dev/zero of=/root/1Gbfile bs=4096count=250000

通过比较 dd 指令输出中命令的执行时间,即可确定系统最佳的 blocksize 大小

测试硬盘写速度

dd if=/dev/zero of=/root/1Gb.file b5=1024count=1000000 测试硬盘读速度

dd if=/root/1Gb.file bs=64k|dd of=/dev/null

track/cylinder:10bit210=1024 head :8bit255

512*63*1024*255

MBR

主分区:1-4

扩展分区:扩展+主分区<=4逻辑分区:

k,m,gt,p,e,z,ybin,d

实验:分区表的备份和还原

[root@centos6~]#blkid-U'sed-rn's#^UUID=(*)/.*#\1#p’/etc/fstab/dev/sda2

在 centos6 之前版手动创建的 ext 分区,默认没有 ACL 功能

一个设备可以同时挂载到多个目录一个目录可挂载多个设备呢?不可以

实验:增加一块新硬盘,分区,创建文件系统 XFS|EXT4,挂载

实验: /etc/fstab 文件错误,无法启动,故障排错 centos6,7

实验:实现 swap 分区

实验:迁移 /home 目录到新分区中


三、练习

1、创建一个 2G 的文件系统,块大小为 2048byte,预留1%可用空间文件系统  ext4,卷标为 TEST,要求此分区开机后自动挂载至 /test 目录,且默认有 acl 挂载选项

 

2、写一个脚本,完成如下功能:

(1)列出当前系统识别到的所有磁盘设备

(2)如磁盘数量为1,则显示其空间使用信息否则,则显示最后一个磁盘上的空间使用信息

 

3、将 CentOS6 的 CentOS-610-x8664-bin-DVD1.iso和CentOS-6.10 x8664-bin-DVD2iso 两个文件,合并成一个 CentOS-6.10-x86 64- Everything.iso 文件,并将其配置为 yum


四、什么是 RAID

RAID:Redundant Arrays of Inexpensive(Independent) Disks1988年由加利福尼亚大学伯克利分校 (UniversityofCalifornia-

Berkeley)ACase for Redundant Arrays of Inexpensive Disks"  多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供

相关文章
|
3月前
|
存储 文件存储
文件系统设计与实现上
文件系统设计与实现上
52 6
文件系统设计与实现上
|
3月前
|
安全 测试技术
文件系统设计与实现下
文件系统设计与实现下
34 2
|
3月前
|
存储
文件系统设计与实现中
文件系统设计与实现中
21 0
|
8月前
|
Linux 数据安全/隐私保护
第十四章、【Linux】磁盘配额与进阶文件系统管理
第十四章、【Linux】磁盘配额与进阶文件系统管理
77 0
|
存储 固态存储 Java
什么是文件系统| 学习笔记
快速学习什么是文件系统。
147 0
什么是文件系统| 学习笔记
|
存储 机器学习/深度学习 安全
文件系统管理-1| 学习笔记
快速学习文件系统管理-1
207 0
|
移动开发 Linux 开发者
文件系统使用| 学习笔记
快速学习文件系统使用
157 0
文件系统使用| 学习笔记
|
Linux
磁盘及文件系统管理_学习笔记
时间:2017.12.01作者:李强参考:man,info,magedu讲义,神奇的internet声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
998 0
|
数据库
高级文件系统管理_学习笔记
时间:2017.12.04作者:李强参考:man,info,magedu讲义,万能的internet实验环境:CentOS 6.9与CentOS7.4声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
958 0

热门文章

最新文章