Linux磁盘管理解析 及 课后习题解答----工坊学习记录--2.3

Linux磁盘管理—常用命令

1.命令 df
  • -i:表示查看inodes的使用状况,如使已用100%,即使磁盘空间有富余,也会提示磁盘空间已满。示例命令如下:
    在这里插入图片描述
  • -h:表示使用合适的单位显示,例如GB。示例命令如下:
    在这里插入图片描述
     
2. 命令 du
  • -a:表示全部文件和目录的大小都列出来。如果后面不加任何选项和参数,则只会列出目录
    (包含子目录)的大小。如果du命令不指定单位的话,默认显示单位为“KB”。示例命令如下:
    在这里插入图片描述
  • -b:表示列出的值以B为单位输出。
  • -k:表示以KB为单位输出,这和默认不加任何选项的输出值是一样的。
  • -m:表示以MB为单位输出。
  • -h:表示系统自动调节单位。例如,如果文件太小,可能就几千字节,就以KB为单位显示;如果文件大到千兆字节,就以GB为单位显示。若一个文件小于4KB,当使用-k选项时,也会显示4KB,后面阿铭再给大家解释原因。同理,使用-m选项时,也会有类似问题。示例命令如下:
    在这里插入图片描述
     
3. 命令 fdisk

格式为fdisk [-l] 【设备名称】,其选项只有 -l。选项-1后面不加设备名称,会直接列出系统中所有的磁盘设备以及分区表;加上设备名称,则会列出该设备的分区表。示例命令如下:
在这里插入图片描述
fdisk命令如果不加 - l 选项,则会进入另一个模式,在该模式下,可以对磁盘进行分区操作。示例命令如下:
在这里插入图片描述如果此时输入m , 会列出常用的命令,如图:

命令操作 解读
a 切换可引导标志
b 编辑bsd磁盘标签
c 切换dos兼容性标志
d 删除分区
g 创建新的空CPT分区表
G 创建IRIX(SGI)分区表
i 列出已知分区类型
m 打印此菜单
n 添加新分区
o 创建新的空DOS分区表
p 打印当前磁盘的分区情况
q 不保存更改就退出
s 创建新的空Sun磁盘标签
t 更改分区的系统id
u 更改显示/输入单位
v 验证分区表
w 将表写入磁盘并退出
x 额外功能(仅限专家)
4. 格式化磁盘分区 — 命令 mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4 和 mkfs.xfs (前4个命令是一样的)

下面以mke2fs命令为例进行介绍

  • -b:表示分区时设定每个数据区块占用的空间大小。目前,每个数据块支持1024B、2048B以及4096B。
  • -i:表示设定inode的大小。
  • -N:表示设定inode的数量。有时默认的inode数不够用,所以要自定义inode的数量。
  • -c:表示在格式化前先检测一下磁盘是否有问题。加上这个选项后,运行速度会非常慢。
  • -L:表示预设该分区的标签(label)。
  • -j:表示建立ext3格式的分区。如果使用mkfs.ext3格式,就不用加这个选项了。
  • -t:用来指定文件系统的类型,可以是ext2、ext3,也可以是ext4。示例命令如下
     
5. 挂载磁盘 — 命令mount

需要格式化了磁盘才能挂载到目录上
用法:

mount <格式化的磁盘> <想要挂载的地址>
使用命令 dh - h 查看刚刚挂载的分区
 

6.卸载磁盘 — 命令umout

可以直接跟挂载点,也可以跟分区名
如果遇到不能卸载的情况可以使用:umout命令的 - l 选项
 

7. /etc/fstab 配置文件

在这里插入图片描述
由上图得知:

  • 第1列就是分区的标识,可以写分区的LABEL、分区的UUID(等会阿铭会着重讲一下这个概念),也可以写分区名(/dev/sdal)。
  • 第2列是挂载点。
  • 第3列是分区的格式。
  • 第4列是mount的一些挂载参数。一般情况下,直接写defaults即可。
  • 第5列的数字表示是否被dump备份。1表示备份,0表示不备份。
  • 第6列的数字表示开机时是否自检磁盘。1和2都表示检测,0表示不检测。自检时,1比2优先级高,所以先检测1,再检测2。如果有多个分区需要开机检测,就都设置成2,1检测完后会同时检测2。在CentOS7系统里,所有分区中该列的值都是0。
理解透彻以上知识点即可编辑 /etc/fstab,例如像我这样增加即可,然后使用命令:mount -a 挂载上去,df -h 查看。

这里是引用

 
 
 

6.6 课后习题

(1)请查资料了解这些术语并说出它们之间的区别:/dev/hda、/dev/hdb、/dev/sda和/dev/sdb。
答:

  1. /dev/hda, /dev/hdb是IDE接口硬盘的块文件。
  2. /dev/hda表示第一块IDE磁盘,/dev/hdb表示第二块IDE磁盘。
  3. /dev/sda, /dev/sdb是SCSI接口硬盘的块文件。
  4. /dev/sda表示第一块SCSI磁盘,/dev/sdb表示第二块SCSI磁盘。

(2)为什么命令du -b /etc/passwd 和命令 du -k /etc/passwd执行后的结果不一致呢?(提示:通常情况下,1024B=1KB,阿铭的/etc/passwd文件的大小为1181 B ,以KB为单位表示时竟然是4KB。)

答: 因为默认格式化磁盘的块大小是4096字节即4K,即使是一个很小的文件也会分得一个块大小为4k。du -b则会以文件大小的 b 单位来统计,所以结果不一致。

(3)请查资料了解磁盘的这些概念:heads、sectors和cylinders。
答:磁头(heads): 磁头固定在可移动的机械臂上,用于读写数据。现代硬盘都是双面可读写,因此磁头数量等于盘片数的2倍。磁头数最大值为 255 (8 个二进制位)。用第几磁头可以表示数据在哪个磁面。
扇区(sectors): 从磁盘中心向外画直线,可以将磁道划分为若干个弧段。每个磁道上一个弧段被称之为一个扇区。扇区是硬盘的最小组成单元,通常是512字节。磁道上的扇区数最大为63(6个二进制位)。
柱面(cylinders): 所有磁片中半径相同的同心磁道构成“柱面"。柱面数最大为1023 (10个二进制位)。柱面是磁盘分区的最小单位。

(4)磁盘分区时每一个扇区空间是多大?
答:由上题资料得知: 512字节

(5)请查资料了解:ide和scsi接口的磁盘有什么区别,scsi磁盘(sda、sdb)最多可以分多少个逻辑分区。
答: SCSI硬盘和普通IDE硬盘相比有很多优点:接口速度快,并且由于主要用于服务器,因此硬盘本身的性能也比较高,硬盘转速快,缓存容量大,CPU占用率低,扩展性远优于IDE硬盘,并且支持热插拔;可以分若干个。

(6)把磁盘格式化为ext4文件系统时,如果指定块大小不是1024B、2048B或4096B,会发生什么?
指定块大小最小是多少,最大又是多少?

答: 百度 :
(1)当指定块小于1024时,则提示错误“无效的块大小”,不能格式化。
(2)当指定块大于1024且小于2048时,则实际以1024的块大小进行格式化。
(3)当指定块大于2048且小于4096时,则实际以2048的块大小进行格式化。
(4)当指定块大于4096且小于或等于65536时,则提示块值太大,是否继续,选择y继续,则以不大于指定块的4K的整数倍值(从4K到32K)进行格式化。
(5)当指定块大于等于65536时,则提示块值太大,是否继续,选择y继续,则以65536字节进行格式化。
(6)当指定块大于65536时,则提示错误“无效的块大小”,不能格式化。

(7)如何查看当前系统里各个分区的文件系统类型?
答:在这里插入图片描述

(8)/dev/zero和/dev/null在Linux系统中是什么文件?它们有什么作用?
答: /dev/zero 是一个造零器,它可以源源不断的提供0,它可以用于向设备或文件写入字符串0,可以用它来创建一个指定长度用于初始化的空文件,比如临时交换文件等。
/dev/null 它是空设备,也称为位桶(bit bucket),任何写入它的输出都会被抛弃。常用来禁止标准输出和标准错误的输出。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。

(9)在Linux系统下,命令df和命令du主要用来做什么?
答:根据上述常用命令得知:

  • df 查看磁盘分区和文件系统信息
  • du 查看目录或文件所占用的磁盘空间大小

(10)在Linux系统下,用什么命令为一个新磁盘分区呢?又用什么命令格式化磁盘?
答: fdisk 为 新磁盘 分区, 使用mkfs.ext2、mkfs.ext3、mkfs.ext4、mke2fs等命令格式化磁盘。

(11)如果不能使用mount命令挂载磁盘,我们需要使用什么命令获取相关错误信息?
答:使用dmesg
dmesg命令的用法:

  1. -c  显示信息后,清除ring buffer中的内容。
  2. -s<缓冲区大小>  预设置为8196,刚好等于ring buffer的大小。
  3. -n  设置记录信息的层级。

(12)当卸载某个磁盘或者分区时,报错umount:/newdir:device is busy.时,我们该如何做?
答 :

  1. 有可能是因为当前用户在/newdir目录下,可以先退出来;
  2. 使用命令强制卸载 : umount -l /newdir

(13)如何获取某个分区的UUID?
答:如图:
在这里插入图片描述

(14)如何使用dd命令生成一个大小为500MB的文件?
答:首先要了解dd命令是什么 —> 作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。(此处dd命令有很多选项并过于复杂,先放一放(⊙﹏⊙))
百度答案得:dd if=/dev/zero of=/bigfile bs=1024K count=500

(15)查看内存大小的命令是什么?如何以MB为单位显示?
答:如图
从常用命令 du 可知:-m:表示以MB为单位输出
在这里插入图片描述

(16)如何查看各文件系统inode的使用情况?
答:由常用命令 df 得知:
在这里插入图片描述

(17)请使用VMware虚拟机分配一块1GB的虚拟磁盘,并用fdisk分区工具给新增磁盘分3个200MB的主分区,然后再分3个100MB的逻辑分区。
答 :1.先添加一块1GB的虚拟磁盘:在这里插入图片描述
2. 分3个200MB的主分区,然后再分3个100MB的逻辑分区
在这里插入图片描述

(18)给磁盘分区时,最多可以分几个主分区?最多可以分几个扩展分区?扩展分区和逻辑分区是什么关系?
答:

最多4个主分区,一个扩展分区;只有划分了扩展分区后,才可以在扩展分区内划分逻辑分区,也就是说逻辑分区是在扩展分区内的!

(19)阿铭使用命令fdisk-1/dev/sdb查看磁盘分区状况时发现有这么几个分区:sdb1、sdb3、sdb5、sdb6和sdb7。请你推算一下这个磁盘共有几个主分区和几个逻辑分区?

答: 根据规则并且只有划分了扩展分区才可以在扩展分区内划分逻辑分区,所以只有 一个主分区,三个逻辑分区(sdb5,sdb6,sdb7)

(20)如何查看某个分区格式化时指定的块大小(1024B、2048B或4096B)?
答:百度:

第一个方法:touch 1; echo 1 > 1; du -sh 1 看看1的大小是几k,是1k块大小就是1024,2k 块大小就是2048,4k 块大小就是4096
第二个方法:tune2fs -l /dev/sda1 |grep ‘Block size’

发布了6 篇原创文章 · 获赞 2 · 访问量 490

猜你喜欢

转载自blog.csdn.net/weixin_45447770/article/details/104693114