
盘符是DOS、WINDOWS系统对于磁盘存储设备的标识符。
一般使用26个英文字符加上一个冒号:来标识。由于历史的原因,早期的PC机一般装有两个软盘驱动器,所以,"A:"和"B:"这两个盘符就用来表示软驱,早期的软盘尺寸有8寸、5寸、3.5寸等。
而硬盘设备就是从字母C:开始,一直到Z:。对于UNIX,LINUX系统来说,则没有盘符的概念,但是目录和路径的概念是相同的。
磁盘的盘符约定是:
软盘为A盘和B盘,硬盘和光盘的盘符是由C盘往后排,约定第一个逻辑硬盘的名称为C盘,用“C:”表示,若系统配有多个硬盘或将一个物理硬盘划分为多个逻辑硬盘,则盘符可依次为“C:”、 “D:”、 “E:”、“F:”、“G:”等。光盘的盘符要排在硬盘的后面。
硬盘盘符变红能对电脑造成的危害:
系统盘符变成红色的原因是:硬盘存储空间即将不足,此系统盘存储容量已经快达到硬盘最大存储的警戒线位置了。
硬盘硬件是一个独立硬件,电脑的 *** 作系统是装在硬盘内,硬盘红盘会有一定几率破坏电脑 *** 作系统,硬盘盘符变红也有一定几率导致硬盘硬件损坏。
这点也就是我们生活中常常说的“爆盘”,另外硬盘盘符变红可导致系统运行缓慢和造成硬盘数据丢失。硬盘盘符变红或硬盘损坏不会造成电脑其他硬件损坏。
一般情况下,Linux系统中,一块硬盘只能出现一个盘符,如果出现两个盘符,可能是由于硬盘上有两个分区,比如一个是C盘,另一个是D盘,所以就出现了两个盘符。另外,也有可能是硬盘上有两个文件系统,比如一个是NTFS文件系统,另一个是FAT32文件系统,也会出现两个盘符的情况。Linux管理多块磁盘时(以sata盘为例),会按磁盘加载的顺序依次给磁盘命名为/dev/sda, /dev/sdb... 这种命名规则就会导致,一块磁盘在发生热插拔或系统重启后,盘符可能发生变化,会影响到一些依赖磁盘盘符工作的应用程序,比如fstab里按盘符名来挂载。要解决磁盘盘符漂移问题,一劳永逸的方法就是将磁盘槽位与盘符名做绑定;淘宝内核组的三百同学针对ali内核,添加了磁盘绑定的补丁。
如果只针对磁盘挂载到问题,可通过按标签或UUID挂载的方式解决,下文将简单介绍下方案。
如下所示的fstab,系统启动时,会自动执行每一行挂载动作,将/dev/sda挂载到/data/disk1,其它依此类推。如果磁盘发生热插拔,第一块磁盘的盘符由原来的/dev/sda变成了/dev/sdc,那么fstab就不能正确挂载第一块磁盘。
/dev/sda /data/disk1 ext4 defaults,noatime 0 0
/dev/sdb /data/disk2 ext4 defaults,noatime 0 0
为了保证在发生盘符漂移时,磁盘仍能正常挂载,首先对fstab做如下改进,按磁盘标签来挂载;比如第一行的含义是,将标签为disk1的磁盘挂载到/data/disk1。
LABEL=disk1 /data/disk1ext4defaults,noatime 0 0
LABEL=disk2 /data/disk2ext4defaults,noatime 0 0
接下来的问题就是如何给磁盘设置标签,针对ext系列的文件系统,可通过e*label来设置标签;也可在磁盘format时设置标签。
mke4fs /dev/sda -L disk1
或者 mke4fs /dev/sdae4label /dev/sda disk1
通过上述设置后,磁盘/dev/sda就拥有了标签disk1,在fstab里挂载拥有disk1标签的磁盘,即挂载/dev/sda,即使这块磁盘的盘符发生了变化,由于其标签没变,fstab也能正确的将其挂载;通过mke4fs或e4label设置的标签,标签实际上是跟文件系统绑定的,是文件系统超级块的一部分,可通过tune4fs查询到。
设置标签后,如果磁盘上的文件系统被重新格式化,则其原来设置的标签也就不复存在了,这也正是标签机制不足的地方;如果要解决这个问题,可通过在fstab里按UUID来挂载磁盘,UUID对于磁盘来说是不变的,不论其盘符、标签是否变化;但使用UUID的缺陷在于灵活性不足,不利于大批量部署。
UUID=356fdf58-6923-43d5-9a09-349159c7c8a6 /data/disk1ext4defaults,noatime 0 0
UUID=3b93fbad-bea2-4cbb-9a76-b4885924d287 /data/disk1ext4defaults,noatime 0 0
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)