第六章练习题答案 
1. 请查资料了解这些术语:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别 
/dev/hda, /dev/hdb是ide接口硬盘的块文件。/dev/hda表示第一块ide磁盘,/dev/hdb表示第二块ide磁盘。 
/dev/sda, /dev/sdb是scsi接口硬盘的块文件。/dev/sda表示第一块scsi磁盘,/dev/sdb表示第二块scsi磁盘。 

2. 为什么 du -b /etc/passwd 和 du -k /etc/passwd 所得到的结果不一致呢按道理讲1024b 等于 1k 阿铭的 /etc/passwd 为 1181b 而 使用k为单位表示它竟然是 4k. 
因为默认格式化磁盘的块大小是4096字节即4k,即使是一个很小的文件也会分得一个块大小为4k。du -b则会以文件大小的b单位来统计,所以结果不一致。 

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

4. 请计算磁盘分区的时候,每一个柱面空间是多大 阿铭的第二块磁盘是8589 mb (8589934592 bytes),总共有1044个柱面。 
柱面空间大小=磁头数*每磁道扇区数*扇区大小=255*63*512(bytes)=8225280 bytes 

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

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. 如何查看当前系统里各个分区都是什么类型的文件系统 
mount 或者 df -t 

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 

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'