目录
一、磁盘基础知识
https://cloud.tencent.com/developer/article/2090691
https://www.elecfans.com/news/1833809.html
https://blog.csdn.net/qq_47343020/article/details/124920494 (短小精湛)
硬盘与软盘的区别:https://baijiahao.baidu.com/s?id=1762155257403549840&wfr=spider&for=pc
1.磁盘物理结构与组成
https://zhuanlan.zhihu.com/p/373313740?utm_id=0
https://blog.csdn.net/weixin_47187147/article/details/127536014
https://blog.csdn.net/newticigam/article/details/119995159
主要有扇区、磁道、盘面、柱面、磁头
-
扇区
https://blog.csdn.net/newticigam/article/details/119995159
硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB) -
必须要记住的英文单词:
geometry:几何数据,一般指的就是CHS,如下:
cylinders:柱面数
sectors:扇区数
heads:磁头
2.硬盘种类的划分(以接口形式为准)
https://blog.csdn.net/Jackliu200911/article/details/117558366
[https://baijiahao.baidu.com/s?id=1727107686222207048&wfr=spider&for=pc](https://baijiahao.baidu.com/s?id=1727107686222207048&wfr=spider&for=pc)
3.磁盘分区
http://www.360doc.com/content/18/0401/08/277688_741943505.shtml
https://blog.csdn.net/w1234567465/article/details/119734829
1)磁盘分区命名规则
主设备号 + 次设备号 + 磁盘分区号
如/dev/sda1,/dev/sda2,如sd就代表主设备号(设备类型,sd为SCSI硬盘),a代表是次设备号,1、2代表分区号。
2)分区格式
主分区、扩展分区、逻辑分区等概念:
https://blog.51cto.com/u_14286115/5194405
主分区,扩展分区,逻辑分区,活动分区,系统分区,启动分区。。。。。。。。。
主引导扇区,MBR,bootloader。。。。。。。。。。
各种概念,你都清楚什么意思吗?
花了一天的时间终于研究清楚了,网上好多帖子的解释都是错的,或者没有深入到本质,都是什么C盘啊,D盘啊,都被windows洗脑了。浪费了好好长时间。
主分区:实际上在早期的硬盘分区中并没有主分区、扩展分区和逻辑分区的概念,每个分区的类型都是主分区。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计只能存储4个分区的数据。也就是说,一块物理硬盘只能划分为4个逻辑磁盘。在具体的应用中,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,引入了扩展分区和逻辑分区,并把原来的分区类型称为主分区。
扩展分区:上面说了,4个分区显然不能满足需求,但是物理硬件限制只能有4个分区怎么办呢?所以操作系统开始出马了,把其中一个主分区命名为扩展分区,记住只是命名哦,原则上扩展分区和主分区是一样的,只不过功能不同。下面说完逻辑分区,你就懂我在说什么了。
逻辑分区:4个分区肯定不够,我想要20个分区,怎么办呢?把其中一个主分区变成扩展分区,然后在这个扩展分区上进行切割,变成一个个D盘,E盘,F盘什么的,但是这些盘综合起来就是一个扩展分区,这些盘是相互链接的,并不像主分区那样,4个之间相互独立互不干扰。逻辑分区用链表进行链接,如果E盘中的分区信息丢掉,操作系统就找不到F盘了。
启动分区:很简单,存放操作系统文件的的分区,比如你装了2个系统:win7+linux那么你就2个启动分区。装的是windows的话就看windows文件夹(system32文件)存放在那个区,哪个区就是你的启动分区,默认装C盘,你也可以装F盘等。装的是Linux的话就看 / 分区装在哪,哪就是启动分区。
系统分区:存放Ntldr程序或者Grub程序的分区,windows通常装在C盘,linux通常装载/boot分区
活动分区:活动分区是主分区,活动分区是系统分区,每次PC启动时,一块硬盘只能有一个活动分区,如果要启动windows就将windows的系统分区设为活动分区,计算机就会去那里装载引导程序(Ntldr或者Grub)并执行,如果要启动Linux就将Linux的系统分区设为活动分区。
看到没?上图是我的硬盘分区情况,我的win7装在C盘,即我的windows文件夹在C盘,所以C盘是启动分区;但是我把Grub装到Z盘去了,即引导程序Ntldr. boot.ini什么的,所以Z盘是系统分区。。。。。又由于我当前启动的时win7系统,所以win7的系统分区也是活动分区。
各位童鞋应该都明白了吧~~~~~
下面讲一讲启动的事情
主引导扇区:每块硬盘,对,每块硬盘不是每个分区,都【只有一个主引导扇区,即该硬盘0号柱面,0号磁头的第一个扇区,大小为512字节】。主引导扇区包含的MBR(硬盘主引导记MBR占446bytes)、DPT(分区表DP占64bytes)、MN(硬盘有效标志Magic Numbe占2byte。AA和55被称为幻数(Magic Number),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是一个没有被分区的硬盘),这3个区域是操作系统无关的,在每块硬盘上都存在;MBR是一段可执行程序,由各个操作系统写入不同的代码。MBR的存储空间限制为446字节,MBR所做的唯一的事情就是装载第二引导装载程序。Windows产生的MBR装载运行PBR;GRUB产生的MBR装载运行grldr
MBR:正如上面所说的那样,它是一段程序,长度为446字节,作用是加载bootloader的。
- MBR (Master Boot Record),另外也叫作MSDOS
https://www.jianshu.com/p/c57c4e688da6
MBR存储:MBR位于硬盘第一个物理扇区处 , MBR中包含硬盘的主引导程序和硬盘分区表 MBR总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-512字节中。 分区表有4个分区记录区,每个分区记录区占16字节,最后2字节结束标记0x55和0xAA。
重要概念:不同的分区与特性
缺点:
操作系统无法抓取2.2T以上的磁盘容量,个人PC可能目前来说够,但是服务器已经无法满足了;
MBR仅有一块分区表,无法实现高可用,一旦被损坏,很难再救援恢复;
MBR内存放的开机管理程序也只有446bytes,也是无法容纳更多的开机程序代码的;
- GPT(GUID Partition Table)
因此基本上GPT弥补了MBR的不足,但是GPT只是分区格式方法不同哈,以SCSI硬盘为例,磁盘的命名规则并没有大改; 仍然是第一块盘sda,第二块盘sdb… 第一块盘的第一个分区sda1,第二个分区sda2等,但是GPR去除了扩展分区的概念,直接分区为主分区和逻辑分区;
3)磁盘分区与挂载
http://www.taodudu.cc/news/show-5496810.html?action=onClick
分区挂载之前必须先要格式化,否则会报错:mount: /file2: wrong fs type, bad option, bad superblock on /dev/sdb5, missing codepage or helper program, or other error.
4)分区表
https://www.ddbji.com/web/pc/116.html
https://blog.csdn.net/caodinke/article/details/105347503
https://zhuanlan.zhihu.com/p/524941216?utm_id=0
二、磁盘操作命令
https://zhuanlan.zhihu.com/p/641397199
https://zhuanlan.zhihu.com/p/637951398?utm_id=0&wd=&eqid=a73387950002111e000000066577af56
1.查看磁盘空间大小
https://www.runoob.com/linux/linux-filesystem.html (详细)
1)df命令(disk free)
作用:显示目前在 Linux 系统上的文件系统磁盘使用情况统计
如果没有指定文件名,则df命令会显示所有已挂载的文件系统的信息。如果指定了文件名,则df命令会显示该文件所在的文件系统的信息。
https://www.runoob.com/linux/linux-comm-df.html
常用参数说明:
https://blog.csdn.net/qq_33681891/article/details/132824558
- 查看文件系统类型
df -T /path/to/directory
2)du命令(disk usage)
作用:显示指定的目录或文件所占用的磁盘空间,不指定目录则默认计算当前目录。
https://www.bunian.cn/10579.html
常用参数说明(与df有很多相同的参数):
通过du --help
可以看到详细的说明
-0, --null 每行输出使用 NUL 空字符结尾而非使用换行符
-a, --all 输出所有文件的磁盘用量,不仅仅是目录
--apparent-size 显示表面用量,而并非是磁盘用量;虽然表面用量通常会
小一些,但有时它会因为稀疏文件间的“洞”、内部碎
片、非直接引用的块等原因显得更大一些。
-B, --block-size=大小 以指定大小为单位对块大小进行输出;例如,
'BM' 以 1,048,576 字节为单位输出大小;
详情请参见下方的“SIZE 格式”部分
-b, --bytes 等效于 '--apparent-size --block-size=1'
-c, --total 显示总计信息
-D, --dereference-args 只在符号链接显式在命令行列出时对其进行解引用
-d, --max-depth=N 仅当目录(或在 --all 选项启用时包括文件)层级不高于
命令行参数指定的 N 层时输出对应目录或文件的对应大小;
--max-depth=0 等效于 --summarize
--files0-from=F 统计由文件 F 给出的由 NUL 空字符结束的文件名列表
所对应各个文件的信息;如果 F 是 -,则从标准输入
读取文件名列表
-H 等效于 --dereference-args (-D)
-h, --human-readable 以人类可读的格式输出大小(例如,1K 234M 2G)
--inodes 列出 inode 使用信息而非块使用信息
-k 等效于 --block-size=1K
-L, --dereference 解引用所有符号链接
-l, --count-links 如果是硬连接,则重复计算其尺寸
-m 等效于 --block-size=1M
-P, --no-dereference 不跟随任何符号链接(默认行为)
-S, --separate-dirs 不包括子目录的占用量
--si 类似 -h,但使用 1000 的倍数,而非 1024
-s, --summarize 只分别计算命令列中每个参数所占的总用量(不能与-a并用)
-t, --threshold=大小 如果指定大小为正值,排除比该值更小的项,
或者在值为负时排除更大的项
--time 显示目录中或其子目录下所有文件的最后修改时间
--time=关键字 显示指定关键字对应的时间而非最后修改时间:
atime, access, use, ctime 或 status
--time-style=格式 使用指定格式显示时间,格式可以为:
full-iso, long-iso, iso 或 +FORMAT;
FORMAT 字符串以与 'date' 工具类似的方式解读
-X, --exclude-from=文件 排除所有与指定<文件>所提供模式匹配的文件
--exclude=模式 排除所有与所给<模式>匹配的文件
-x, --one-file-system 跳过位于不同文件系统上的目录
- -a:查看所有文件的磁盘用量,包括文件及符号链接。du默认是不显示文件的,只显示所有目录。
- -d:只显示指定深度的目录或文件,比如2,路径中最多有2个/的文件或者目录才会显示。
- -s:只显示总量大小,不显示文件。
利用du命令排查大文件技巧:
1)du -d 1 -h
:查看一级目录,找到最大的目录。
2)进入最大目录,再次执行du -d 1 -h
直至确定最大目录。
3) 可以加上排序更直观,https://www.jb51.net/jiaoben/297517fbc.htm
2.磁盘数据拷贝,dd指令
http://c.biancheng.net/linux/dd.html
3.dd与cp的区别
https://blog.csdn.net/weixin_30902675/article/details/99471718
4.强制清空回收站(回收站本质上就是一个文件夹)
rm -fr $HOME/.local/share/Trash/files/*
5.分区操作指令
注意虚拟机创建新磁盘,要重启才能被识别。
查看分区
-
lsblk
作用:列出块设备(如硬盘、U盘、CD-ROM 等)的相关信息,包括设备名、大小、类型、挂载点等等
https://blog.csdn.net/wisdom_futrue/article/details/131153572 -
parted -l
编辑分区
https://www.51cto.com/article/216867.html
- fdisk(2T以下)
https://www.cnblogs.com/new-journey/p/10530069.html
https://blog.csdn.net/weixin_44044239/article/details/93376427
为什么Linux的fdisk分区时第一块磁盘分区的First Sector是2048? https://blog.csdn.net/Anonymous2017/article/details/71420218
分区类型
https://blog.csdn.net/weixin_52273136/article/details/111183660
fdisk /dev/sda
后,通过输入l可以查看。
0 条评论