linux学习笔记16-管好硬盘


linux学习笔记16-管好硬盘:

查看硬盘

ls -l /dev/xxy

xx:sd或者hd,sd代表是以下类型接口:SCSI SATA USB;hd代表 IDE硬盘接口。现在一般都是sd接口类型的硬盘

y代表这是这类接口下的第几个硬盘,是a-z的英文字符

硬盘分区的规则

/dev/xxyn,n是数字,代表序号,1-4代表主分区,5以后代表逻辑分区

举例:/dev/hda1 在IDE接口的第一个硬盘的第一个分区(主分区)

fdisk命令

fdisk -l 硬盘名 分区名

[root@localhost stu]# fdisk -l /dev/sda

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003dc67

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         523     4194304   82  Linux swap / Solaris
Partition 1 does not end on cylinder boundary.
/dev/sda2   *         523        2611    16776192   83  Linux

分别包含了这些信息:磁盘容量,磁头数(盘面数),每磁道的扇区数,总柱面数(不同的盘面的相同磁道组成柱面), 每柱面的容量,每扇区容量。但是!这些参数是逻辑值,并不是硬盘的物理参数。

下面部分代表磁盘的分区情况,如果磁盘没分区,这部分内容是空白,如果分好了区,才有信息。

其中第一列代表:分区名

第二列代表:标准DOS PC主引导记录标识,是否允许标准dos主引导记录去引导该分区 ,对于windows的grub引导没有意义

第三和四列代表:每个分区的其实和结束柱面

第五列:大小为1K的块的数量,由于扇区的最小容量是512字节,所以:块的最大数量=柱面数量*每个柱面扇区数量/2

第六和七列:id和system 表示分区的预期用途,并不表示分区的实际用途,82代表交换分区,83代表linux实际分区

目前固态硬盘逐渐成为主流,虽然由于物理结构不同,但是采用了相同的接口,逻辑上还是采取和机械硬盘一样的表达方式。

硬盘分区和格式化

实操:把500G的硬盘进行分区和格式化,格式化其实就是创建文件系统

100G的主分区

64G的扩展分区

100G的逻辑分区,采用和windows兼容的vfat文件系统格式

100G的逻辑分区

剩余的容量单独分区

使用到的命令是 fdisk

fdisk /dev/sdb
n 创建新分区
e 代表 extended 扩展分区
p 代表 primary 主分区
w 代表写入分区表
q 代表退出此命令,不写入分区表
l 可以列出所有支持的文件系统类型,有255种
t 可以选择需要修改文件系统的分区号
mkfs -t ext4 /dev/sdb1 代表给第二块硬盘1分区创建ext4文件系统
mkfs -t vfat /dev/sdb2 代表给第二块硬盘2分区创建vfat文件系统
mkswap 一般用不上,因为安装系统的时候就创建好了,因为这是linux必须的分区
mkswap /dev/sdb5 代表给第二块硬盘的5分区变为交换分区文件系统,不需要跟-t的文件系统类型参数,因为swap文件系统就是单独的唯一的一种文件系统

手动挂载和卸载分区

linux文件系统是树形结构,划分好的分区必须挂载到某个已创建好的目录上,否则无法使用,此被挂载的目录称之为挂载点,先在根目录下创建好5个目录,然后使用mount命令,跟上 分区名 和 挂载点

mount -t ext4 /dev/sdb1 / project_mooc/finished/ 把上面创建好的sdb1分区挂载到finished目录上,-t参数表示分区类型,
-o参数表示挂载后的分区行为(是否允许写入文件,是否允许)
mount -o ro ext4 /dev/sdb1 / project_mooc/finished/ 表示挂载后只读,如果不跟参数,默认是可以读写的 
mount 命令不加任何参数,可以查看这个挂好的分区信息
unmount /dev/sdb8 如果分区文件正在被访问,则不能被卸载,如果退出到别的目录,卸载成功 
    如果挂载点目录里面本来就有文件,一旦有分区挂载上这个目录后,原本这个挂载点目录的文件暂时不能被访问,只有分区被卸载后,原挂载点目录的文件才能被访问
    如果挂载点分区里面有文件,则卸载分区后,分区的文件自然就不可见了,但是文件还是原样存在分区里面,一旦再次挂载就能被看见

注意:

不能将分区挂载到空目录上

不能多次挂载同一个分区

开机自动挂载分区

通过配置文件指定开机需要挂载的分区

etc/fstab 此配置文件

vim /etc/fstab

uuid 设备标签,比较准确稳定

第二列 挂载点

第三列 文件系统类型

第四列 挂载参数

第五列 dump备份是否打开

第六列 开机检查分区的次序,1表示优先,2表示其次,0表示不检查

如果按照此方法进行挂载,若硬盘是热插拔的使用场景,硬盘的顺序会变,sdb变sdc之类的,这样配置文件不会变,挂载会错,此时用 标签 UUID 来挂载更好

UUID=af7da4cb-4efa-4edf-b4d1-72607e04bac1 /                       ext4    defaults        1 1
UUID=2a2112ac-1264-4960-abfd-bdf9874c682f swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sdb5              /project_mooc/finished   ext4    defaults	    0 0
LABLE=material_disk		/dev/sdb5              ext4	    defaults	   0 0
e2lable /dev/sdb5 material_disk 给sdb5分区加上了标签,相当于取了别名
在etc/fstab 文件中,第一列改为 LABLE=material_disk 
其他参数不变

但是标签存在重名的情况,也会出错,如果用UUID是最保险的,universally unique identifier,是真正的唯一标识符,不会重合

blkid查看uuid
然后把格式改成fstab里面的已经用uuid挂载的格式即可