1. 请查资料了解这些术语:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别?
sda是scsi,SATA硬盘设备,hda是IDE硬盘设备

hda一般是指IDE接口的硬盘,hda一般指第一块硬盘,类似的有hdb,hdc等
sda一般是指SATA接口的硬盘,sda一般指第一块硬盘,类似的有sdb,sdc等
现在的内核都会把硬盘,移动硬盘,U盘之类的识别为sdX的形式


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?
sudo blkid


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

dd if=/dev/zero of=file 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个主分区  最多1个扩展分区  逻辑分区是在扩展分区内的


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