第7节. 外围设备使用

案例:home本来是在/下的,现在home越来越大,要迁移到一个新的分区

image-20220303200000435

首先找一个新的硬盘分区

image-20220303200145731

image-20220303200526282

image-20220303200709543

👆这种有提示的,要同步分区表

否则分区sdb2出不来

image-20220303200734993

centos7的同步就一个方法,

image-20220303200854732

然后创建文件系统,并确认

image-20220303200942321

现在就是要将home文件夹挂载/dev/sdb2,要考虑/home下的当前文件,直接挂过去home当前的文件就看不到了--因为现在是挂的/目录关联的设备。这点第5章讲过了。

要把当前的数据迁移过来

image-20220303201312085

数据迁移

要把/home下的文件复制到新的分区,需要中转一下

先用一个临时文件挂一下

image-20220303202341561

image-20220303202935940

确认下文件是否都复制过来了

image-20220303203007916

题外话,复习下:

image-20220303202914393

原/home下的文件可以删除了,否则等你挂载后,这些文件没有入口进去找不着就删不掉了,还得取消挂载从/进入home去删。

使用持久挂载

image-20220303203337230

刚才其实还有一个临时挂载,把/dev/sdb2挂到了/mnt/home下,上图是后挂的覆盖了,mnt可见👇

image-20220303203645891

这里有个问题,原来/home文件夹里的东西被隐藏了,要删掉的,否则一直占着空间。如果前面没有舍得删,这里需要unmount回去删掉的

image-20220303204421720

有个问题,在cp -a /home的时候,文件夹可能有人在用,别人可能在往里写数据。

一般需要把系统处于维护状态--init 1 --单用户模式

image-20220303204717484

image-20220303204754623

进去看下可见是从5 切到 1的

image-20220303204941587

image-20220303205025737

可能有点问题,就是终端那边命令输入有问题,

image-20220303205442107

重启直接进入单用户模式

按任意键

image-20220303205509344

image-20220303205519256

上图输入a,

然后进入下图输入1,进入单用户

image-20220303205619511

单用户模式,就是不联网的,网络都是down的👇

image-20220303205730095

这是建议的维护状态下进行操作;只要别人不能访问就行,比如防火墙deny也可以。

移动设备的使用-光盘-U盘

image-20220304101046912

eject后,光盘就弹出了

image-20220304101937316

image-20220304101950483

弹光驱这件事,有意思在 早期服务器主机都是带光驱,机房里面找机器,可以弹出光驱就能一下子找到了。呵呵~~~现在呢,谈个屁,谈恋爱吧。

eject -t 是弹进去,台式机可以,笔记本不行,VMware Workstation VM虚机更不行了。

把光盘制作成iso文件

这个可以用来挂载iso文件,没光驱,就可以这么玩,挂载iso,一样做yum源。

联系前面的章节:

image-20220304102442287

windows里制作ISO是用工具比如这玩意image-20220304102726783

linxu就一条命令的事:

image-20220304102911009

上图时间较长,你想windows一样要读进度条的,不过你可以ctrl c结束也能看到下面内容,不过数据就不全了。

image-20220304102931102

image-20220304103102135

还一种方法,是把文件夹打包成iso文件

image-20220304103351794

image-20220304103419461

image-20220304103445907

打包成iso 并不会压缩,原来也是这么大差不多

image-20220304103514828

挂载看下

image-20220304103555213

image-20220304103612735

注意这种挂载是read-only,光盘嘛iso就是只读的,不过windows的UltraISO好像可以往里写东西,没用过。

image-20220304103653801

centos6上的一个问题

image-20220304105136174

光盘是3243个包,yum上看到是6713个包,剩下的还有3000+的包在第二张光盘上呢,centos6是两张盘来着。

可以考虑把centos6的两张盘和成一张盘

弄一个大文件夹,然后把两张光盘解压进去攒成一个大文件夹就行,不过这样可能没有引导文件,还需要工具,不过只是做yum源应该没关系吧,安装可能不行。

有个官方脚本"mkdvdiso.sh"可以把两个centos6的ISO合成一个iso同时具有启动功能

看下U盘

U盘的系统查到linux上,如果是FAT32可以识别,如果是NTFS就不行了。

wmware workstation 插上U盘后会提示

image-20220304111813950

如果选择主机,那么linux这些虚机识别不聊了,所以选择虚机连接

我们选择主机先看下👇,待会再连到虚机上

image-20220304112000774

把U盘从"主机连接" 转到 "虚机连接"

👇注意tail -f /var/log/messages监控着:

image-20220304133214220

image-20220304133445405

点击后同时观察后面的messages日志

image-20220304133528006

开始弹出信息:usb xxx

image-20220304133648903

设备名也出来了[sde]。

image-20220304133758637

下面就是和硬盘一样的用法,创建文件夹,挂载

因为是2个分区,所以创建2个文件夹 将来挂载

image-20220304133920459

image-20220304133959262

发现sde1是ntfs的,挂不上去,sde2是vfat的可以

image-20220304134043668

因为linux默认不支持ntfs,所以挂不上去

通过locate xxx查找内核文件可以证明确实不支持,👇没有ntfs文件系统的驱动

image-20220304134150154

👆这是看有无驱动的文件,至于是否加载到内存中了没,还要通过lsmod查看

image-20220304134354556

虽然有vfat.ko文件表示系统支持fat格式,但是并没有加载到内存中👇

image-20220304134457254

image-20220304134624079

因为已经mount在用了,所以系统就给你加载内存里面

image-20220304134710292

image-20220304134749095

image-20220304134802265

fat文件系统虽然在linux里支持挂载,但是有问题的,umask貌似没有起作用

image-20220304134927196

完全改不了

image-20220304135047482

改所有者、所属组也不允许

image-20220304135109692

说明fat文件系统的功能太少,连基本的权限rwx和所有者、所属组都不支持。

还有一个fat文件系统不区分大小写👇

image-20220304135334370

这里就可以说这么一句话:linux区分大小写这种说法不准确,显然上图的linux系统存在不区分大小写的情况,所以讲 区分大小写 它是文件系统的事情,linux一般xfs或者ext这两个区分大小写,如果非要用linux也支持的fat文件系统(fat本身不支持权限umask和所有者\组)--此时就表现出不区分大小写了。

image-20220304140626160

👇下图人家df定义了别名,所以\df来使用原来的命令,注意原来的df就是以block块为单位的,1个block就是1KB字节。

image-20220304140811848

-h 是human人类可读性好的选项

-h是以2^xx 也就是1024算的

image-20220304140936101

-H 是10^ 也就是1000算的

image-20220304141000801

-T 显示文件系统

image-20220304141112675

-i inode节点使用情况

image-20220304141146260

-P 是格式化好看些的意思

image-20220304141629331

centos7是优化过了,看看centos6就知道了

image-20220304141814531

这个错位,cut就不能取了啊,要注意。加个-P 就解决了

image-20220304141911252

image-20220304141948452

厉害厉害,上图--skip-alias 细节啊,

所以说7就不需要-P了,因为7上的df的rpm包版本更高,6的版本低还需要-P

image-20220304142049171

查看文件夹大小

image-20220304142302973

du 不带选项,就是/boot目录下,每个子目录的占用空间,单位是KB;最后一行/boot是汇总信息。

image-20220304142535131

这个du看到的和df看到的不太一致

image-20220304142705570

du 算的空间是目录数据本身站的空间,而元数据是不算在内的,还有日志、实时运行区?一些额外的东西。

dd count=0就是数据为0咯,但是会产生元数据的,所以多少会有点空间占用的👇

image-20220304145212963

不过多了点元数据

image-20220304145927452

上图最后一行的命令解释:seek是跳过10个bs,也就是10G开始写数据,结果写0个bs。所以前面0-10G的数据为空。也就是有头有尾,中间没东西。

image-20220304150155019

跳过的也占空间的👆

image-20220304150408975

image-20220304150521579

image-20220304150716315

毛的元数据,说好的一点点呢,啥也不占啊,

image-20220304150816619

应该还是有一点点,文件元数据确实有的啊。但是没看到也是奇了怪了,不管了,反正文件ll都看到肯定元数据占用跑不了的。superblock也在分区上的啊。可能du就看不到元数据的空间占用情况。

回到这种10G大小确一点空间不占的问题上来,图①,下面要引用对比

image-20220304151402492

这种文件称之为 稀疏文件--有头有尾,中间时空的。与之相反的是稠密文件。

image-20220304151647228

image-20220304151757714

这个文件将来学虚拟化有用的,提前接触下这个东西。

image-20220304152031073

显示上都是0,要要注意前面空的虽然也用0表示,但实际上没有数据,然后 后面的1G确实写了数据--0。元数据里加了标记,从哪到哪加了标记没用 是空的 硬盘上没有数据的;后面1G真正的写了0的是有数据的。

▲所以恶心的事情来了,上图是有1G数据的,和上面的"图①"是不同的,图①里的是一个数据都没有的。貌似没法区分咯,,,⚪?

du 可以指定深度

除了/boot本身,再深入2级👇

image-20220304152941726

文件大小空间ls -l f看的不对了就,du可以看的准确点。

du看的是真正的占用空间,而ll看的不是,有点像是真实或者预定规划的空间。

image-20220304153114418

image-20220308104102458

ibs和obs是读和写的块大小各自定义,不像bs统一的。

image-20220308104420092

👆表达了,文件系统的最小存储单位是4K,所以即使你文件只有3个字节Byte,占用空间也是4KB。然后注意以下bs=1说的也是块,不过这个块大小上图设定的是1Byte,加上count=3就是3Bytes。▲块这个词真的是到处乱用。对,我理解不好的,都是词名称起的不好,希望内向的同学多一点这样的观点。

空文件不会分配空间👇

image-20220308104844839

空文件不分配空间,现在不需要空间,只需要元数据就行。而元数据的空间占用 看来并不是通过du查看的。▲

一个换行也会占用一个文件系统的最小存储单元4K👇

image-20220308105143329

所以,如果都是小文件,就会浪费磁盘空间了,这个小就是相对于文件系统的存储单元来讲的。所以文件系统创建的时候 可以指定块大小的:mks -b。

准备两个文件

image-20220308105655177

image-20220308105927571

请问最终效果是啥,结果是:

image-20220308105959553

默认行为就是,从f1.txt取数据写到f2.txt的时候,默认f2.txt多出来的就截断了。

可以修改这个默认行为,使之不截断,这里使用了我讨厌的之乎者也的之,因为书写简洁。

image-20220308110317294

image-20220308110433679

👆这样就f2.txt多出来的就不截断了。不管截不截断,它都是覆盖的写法,不存在插入哈,插入那是insert键盘的效果哈哈~这里是往固定位写数据肯定会覆盖的。

还有转换大小写可还行,可还行--网络用语,在永生里小郡主说出来就很可爱。

image-20220308110647386

还可以目标存在就覆盖,不存在就不创建

image-20220308111004997

👇这个469MB/s是先放到缓冲区里的速度,它这个是先把2G的数据写到缓冲区,再写到硬盘里。

image-20220308113922076

然后有个参数就是直接写硬盘的,就是命令结束前,先写到磁盘上,然后出统计结果比如时间啊、速度啊。

image-20220308114110603

image-20220308114243290

👆这就是真实写入磁盘的速度了,▲这个也是基本思维咯,写数据往往写的都是内存。能给你一个写到磁盘的统计--这里是统计,或给你一个写到立即写到磁盘的开关nginx还是mysql里有这东西的,也是阔以的,否则我就不知道怎么保证立刻写入磁盘--其实应该不必担心,一般都是非常快同步的,少数比如分区划分需要同步到磁盘。

image-20220308114846460

image-20220308115042415

就是从if=xxx中读取100个字节,但是xxx中只有90个字节,所以剩下的10个字节用NUL补齐。懂了没榆木脑袋SYM。非要顺一遍才能理解。

复习下:

image-20220308115444272

dd工具其实就是相当于windows里的ghost工具

image-20220308115954316

有个问题,文件备份一般tar一下对吧,那这里的dd又是否合适呢,显然dd覆盖面会广,占用空间会多。然后网上有一些cp dd tar cpio dump来备份的比较说明。

网上的一些信息:就是说类似dump去做增量级别的备份

image-20220308151543577

https://blog.csdn.net/ether_lai/article/details/12656219

image-20220308152326025

把内存里的数据进行备份,内存修改软件--改游戏角色属性的好像有这个东西。

制作iso镜像,除了这里的dd,通常cp一条命令就行了--上一章有讲。

销毁磁盘用dd,还能找回吗?⚪多写几次unrandom随机数进去,即使硬盘支持几次数据找回应该也没办法了。

练习

image-20220308152928344

RAID

image-20220308153011325

避免单点故障,单块磁盘损坏。

原来随着技术演变或者说应用场景的演变、需求的演变,原来的东西的名字也是会改的。

image-20220308154140184

现在主板上都自带raid卡的--内接式。

游戏笔记本做软RAID提升性能?

Copyright 🌹 © oneyearice@126.com 2022 all right reserved,powered by Gitbook文档更新时间: 2024-07-28 14:47:36

results matching ""

    No results matching ""