linux磁盘分区、挂载知识扫盲

在现代系统上,只有分区实际存在时才会出现分区设备.

在具有MBR分区表的磁盘上,分区号1到4对应于分区表中的四个插槽,称为“主”分区.它们不必按顺序填充,因此例如可以使用sda2而不是sda1.分区号5和向上对应于扩展分区中的“逻辑驱动器”,并且它们总是按顺序编号,因此如果没有sda5,则不能拥有sda6.

在具有GPT分区表的磁盘上,可以有更多(通常最多128个)分区,并且所有分区都是“主要”.例如,你可以有一个磁盘,其唯一的分区是sda9.

如果磁盘没有分区表,那么它当然没有分区设备.

较旧的系统 – 那些使用静态/ dev而不是udev管理的系统 – 通常会为所有可能的分区号设置设备节点,而不管分区是否实际存在. (当然,尝试打开不存在的分区的设备文件会失败.)

可以放弃分区并将文件系统直接放在磁盘上.挂载块设备时,文件系统驱动程序通常会在设备开头的预定偏移处查找超级块,并且由于分区的开头不是磁盘本身的开头,因此分区中的文件系统的超级块位于磁盘上的不同位置,而不是“整个磁盘”设备上创建的文件系统的超级块.

因此,如果磁盘曾经只有一个文件系统,然后它被分区并且文件系统是在一个分区中创建的,那么旧的超级块可能仍然在那里,例如在第一个分区开始之前的小间隙中.所以磁盘似乎在原始磁盘设备和分区设备上都有一个文件系统,因为无论你尝试安装哪一个,当文件系统驱动程序寻找超级块时它会找到一个.

然而,安装和使用两个文件系统实际上并不安全,因为它们在磁盘上重叠.一个人可能拥有重要的簿记数据,另一个人认为是自由空间.这就是为什么最好将块设备的开头归零,删除任何不需要的超级块,当你想要将原始磁盘更改为分区磁盘,反之亦然,或者更改分区上使用的文件系统类型等时. .

sda, sdb, sdc, sda1, sda2在Linux中都代表什么

第一个软驱 /dev/fd0.

第二个软驱 /dev/fd1.

第一块硬盘 /dev/sda.

第二块硬盘 /dev/sdb, 以此类推.

第一个SCSI CD-ROM /dev/scd0, 可以用/dev/sr0.

1. 请查资料了解这些术语:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别?

答:hda一般是指IDE接口的硬盘,hda指第一块硬盘,hdb指第二块硬盘,等等;sda一般是指SATA接口的硬盘,sda指第一块硬盘,sdb指第二块硬盘,等等。

2. 为什么 du -b /etc/passwd 和 du -k /etc/passwd 所得到的结果不一致呢?按道理讲1024b 等于 1k 阿铭的 /etc/passwd 为 1181b 而 使用k为单位表示它竟然是 4k.

答:du -b显示的是文件的实际大小;du -k显示的是文件所占磁盘块的大小,du不带参数默认是显示块的大小。一个块大小为4KB,一个块只能存放一个文件,小于4KB的文件占用一个块的大小,大于4KB的文件占用多个块,大小为4KB的整数倍。/etc/passwd大小为1181b,小于4KB,所以使用du 或者du -k显示大小为4KB。

3. 请查资料,了解磁盘的这些概念: heads, sectors, cylinders.

答:硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。

磁头(Heads):每张磁片的正反两面各有一个磁头,一个磁头对应一张磁片的一个面。因此,用第几磁头就可以表示数据在哪个磁面。

柱面(Cylinder):所有磁片中半径相同的同心磁道构成“柱面”,意思是这一系列的磁道垂直叠在一起,就形成一个柱面的形状。简单地理解,柱面就是磁道。

扇区(Sector):将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。每个扇区的容量为512字节。

硬盘容量=磁头数×柱面数×扇区数×512字节。

4. 请计算磁盘分区的时候,每一个柱面空间是多大? 阿铭的第二块磁盘是8589 MB (8589934592 bytes),总共有1044个柱面。

答:柱面空间=磁盘容量/柱面数=8589934592/1044=8227906bytes

5. 查资料了解ide和scsi接口的磁盘有什么不一样,scsi 磁盘(sda, sdb)最多可以分多少个逻辑分区(这个了解即可)?

答: IDE(Intergrated Device Electronics,电子集成驱动器)一般是有扁平电缆连接的,一个扁平电缆可以连接2个IDE硬盘,而一个计算机一般提供2个扁平电缆,所以一般允许4块IDE硬盘。IDE经过多年的发展,成熟,廉价,稳定。一般老式的电脑中装的都是这种硬盘。目前主流的硬板已经是SATA硬盘了。IDE是平行传输的,而SATA是串行传输的。

SCSI(Small Computer System Interface:小型计算机系统接口)的出现主要是由于原有IDE接口的硬盘转速比较低,传输效率比较慢。由于SCSI硬盘独立于系统总线工作,所以它的最大优点就在于系统的占用率低,当然它还有一些优点,转速高,传输速率快,更稳定。但也有一些缺点,价格高,安装没有IDE方便。

一块SCSI硬盘最大分区只能分三个主分区加一个扩展分区, 而扩展分区最多可分15个逻辑分区, 这是硬件限制,不能突破。

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

答:当格式化文件系统时,如果指定块大小不是1024、2048、4096这几个标准值,会出现下面几种情况:

(1)当指定块小于1024时,则提示错误“无效的块大小”,不能格式化。

(2)当指定块大于1024且小于2048时,则实际以1024的块大小进行格式化。

(3)当指定块大于2048且小于4096时,则实际以2048的块大小进行格式化。

(4)当指定块大于4096且小于或等于65536时,则提示块值太大,是否继续,选择y继续,则以不大于指定块的4K的整数倍值(从4K到32K)进行格式化。

(5)当指定块大于等于65536时,则提示块值太大,是否继续,选择y继续,则以65536字节进行格式化。

(6)当指定块大于65536时,则提示错误“无效的块大小”,不能格式化。

7. 如何查看当前系统里各个分区都是什么类型的文件系统?

答:(1)mount

(2)df -T

8. /dev/zero 和 /dev/null 在linux系统中是什么文件,有什么作用?

答:(1)/dev/zero 是一个造零器,它可以源源不断的提供0,它可以用于向设备或文件写入字符串0,可以用它来创建一个指定长度用于初始化的空文件,比如临时交换文件等。

(2)/dev/null 它是空设备,也称为位桶(bit bucket),任何写入它的输出都会被抛弃。常用来禁止标准输出和标准错误的输出。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。

9. Linux下df 和 du 两个命令主要用来做什么?

答:(1)df 查看磁盘分区和文件系统信息

(2)du 查看目录或文件所占用的磁盘空间大小

10. 在Linux系统下,用什么命令为一个新磁盘分区呢?又用什么命令格式化磁盘?

答:fdisk 为新磁盘分区;可以使用mkfs.ext2、mkfs.ext3、mkfs.ext4、mke2fs等命令格式化磁盘。mke2fs功能更多。

11. 如果不能使用mount 挂载磁盘时,我们需要使用什么命令获取相关错误信息?

答:dmesg

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

答:报这个错,可能是因为当前用户在/newdir目录下,可以先退出这个目录然后卸载,也可以使用命令 umount -l /newdir强制卸载。

13. 如何获取某个分区的UUID?

答:使用blkid命令

14. 如何使用dd命令生成一个大小为500M的文件?

答:dd if=/dev/zero of=/bigfile bs=1024k count=500

15. 查看内存大小的命令是? 如何以M为单位显示?

答:free -m

16. 如何查看各文件系统的inode数使用情况?

答:df -i

17. 使用vmware虚拟机分配一块1G的虚拟磁盘,并使用fdisk 分区工具给新加的磁盘分3个主分区,分别200M,然后再分3个逻辑分区,分别100M.

答:fdisk /dev/sdb 回车后,先按n,按 p,输入1 ,再输入 1,再输入+200M ;按n,按 p,输入2 ,再回车,再输入 +200M;按n ,按p,输入 3,再回车,再输入+200M;按 n,按e, 接着按两次回车;按 n,接着回车,输入+100M;按 n,接着回车,输入+100M;按 n,接着回车,输入+100M;

18. 给磁盘分区的时候,最多可以分几个主分区,最多可以分几个扩展分区,扩展分区和逻辑分区的关系时什么?

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

19. 我使用fdisk -l /dev/sdb 查看磁盘分区状况的时候,发现有这么几个分区: sdb1, sdb3, sdb5, sdb6, sdb7, 那么请推算一下,这个磁盘,共有几个主分区和几个逻辑分区?

答:一个主分区,三个逻辑分区(sdb5,sdb6,sdb7)

20. 有什么方法可以查看某个分区格式化时指定的块大小为多少(1024,2048,4096)?

答:第一个方法是,touch 1; echo 1 > 1; du -sh 1 看看1的大小是几k,是1k块大小就是1024,2k块大小就是2048,4k块大小就是4096

第二个方法是,tune2fs -l /dev/sda1 |grep ‘Block size’

扫码领红包

微信赞赏支付宝扫码领红包

发表回复

后才能评论