linux中设备文件和磁盘文件的区别,Linux下磁盘设备文件有哪些变化问题?
在Linux下往往会碰到这样的问题,磁盘的设备文件,比如/dev/sda, sdb, sdc等等在某些情况下会混乱掉,比如sda变成了sdb或者sdc变成了sdb等等,这样无形中会导致磁盘设备管理的混乱,最常见的比如Linux文件系统的启动问题。
很多人在遇到这种问题的时候都去找磁盘、阵列厂家,怀疑是他们的问题,其实这种底层的磁盘(单个磁盘或者RAID阵列)和Linux下磁盘设备文件的映射并不是磁盘、阵列厂家来决定的,而是Linux内核自身的原因。
目前Linux内核对于这种磁盘设备的映射基本上取决于三个顺序,一是磁盘驱动程序的加载;二是主机PCI插槽的监测;三是磁盘本身的监测,先来的当然是 a,以此类推。
所以,在出现热插拔了某些设备、重启等特殊情况下,实际磁盘在Linux下映射的设备文件可能由于这种“排队”的原因而发生改变,而这种底层“偷偷的”变化有时候会让管理员犯一些低级错误。
这是Linux Kernel的限制,所以目前还没办法来正面的克服应对,但有两个“迂回战术”的办法来减少可能出现的问题,一个是采用UUID设备唯一识别的方法,另一个是采用对设备卷做Label标识的办法。
一、 UUID (globally unique identifier),唯一的身份识别,是采用SCSI Inquiry命令的Page 83信息来映射磁盘设备的。例如我们可以在Linux下查询一些磁盘设备的UUID标识代码。
bash# ls -la /dev/disk/by-id
total 0
drwxr-xr-x 2 root root 280 Mar 11 12:29 。
drwxr-xr-x 5 root root 100 Mar 11 12:28 。。
lrwxrwxrwx 1 root root 9 Mar 11 12:29 edd-int13_dev80 -> 。。/。。/sda
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part1 -> 。
。/。。/sda1
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part3 -> 。。/。。/sda3
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part4 -> 。
。/。。/sda4
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part5 -> 。。/。。/sda5
lrwxrwxrwx 1 root root 10 Mar 11 12:29 edd-int13_dev80-part6 -> 。
。/。。/sda6
lrwxrwxrwx 1 root root 9 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000 -
> 。。/。。/sda
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art1 -> 。
。/。。/sda1
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art3 -> 。。/。。/sda3
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art4 -> 。
。/。。/sda4
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art5 -> 。。/。。/sda5
lrwxrwxrwx 1 root root 10 Mar 11 12:28 scsi-3600050e03d7c67007bf400009f890000-p
art6 -> 。
。/。。/sda6
找到了磁盘设备唯一的UUID代码后,就可以加到/etc/grub。conf和/etc/fstab中,这样即使初始的系统盘sda变成了sdb,但Linux和文件系统的启动加载都是按照UUID来的,所以上层也不会受到影响,例如,
在 /etc/grub。
conf系统启动入口中做以下更改:
kernel /boot/vmlinuz-2。6。27。7 root=/dev/disk/by-id/scsi-3600050e03d7c67007bf400009f890000-part1
在 /etc/fstab文件系统启动入口中做以下更改:
/dev/disk/by-id/scsi-3600050e03d7c67007bf400009f890000-part1 / ext3 1 1
/dev/disk/by-id/scsi-234892819987c8f828473829becf38289-part2 /home ext3 1 1
二、 第二种算是比较老式的解决方法,即对磁盘卷设置Label标签,同样的道理,系统启动的时候只看标签,不看底层的sda/sdb等设备号,所以也不会影响到系统、文件系统的启动。
例如,
使用e2label命令对sda1和sdb1设置标签:
/sbin/e2label /dev/sda1 myroot
/sbin/e2label /dev/sdb1 myhome
之后在 /etc/grub。conf 系统启动入口中做以下更改:
kernel /boot/vmlinuz-2。
6。
29 ro root=LABEL=myroot
在 /etc/fstab文件系统启动入口中做以下更改:
LABEL=myroot / ext3 defaults 1 1
LABEL=myhome /home ext3 defaults 1 1
当然,以上两种都是为了不影响系统和文件系统的启动采用的变通方法,在实际的系统管理时还是要密切注意底层设备的变化,否则如果出现了磁盘分区误删除的事情罪过可就大了。
全部
linux中设备文件和磁盘文件的区别,Linux下磁盘设备文件有哪些变化问题?相关推荐
- linux中用户和组群的区别,linux 创建用户群与用户组、权限分配的例子
1. 如何在Linux系统下添加一个帐户:用户名为std02,密码为pwd02? :#useradd std02 #passwd std02 出现提示输入口令pwd02,再次按提示输入pwd02 ...
- linux中top和ps的内存区别,linux - top与ps间的区别
背景 在linux系统中提供了2个查询系统负荷值的命令,一个是 ps -o THREAD 一个是 top ,这两个命令都能够查询当前进程的CPU使用率情况,但是所代表的含义确实不一样的,ps -o T ...
- Linux中内存buffer和cache的区别
Linux中内存buffer和cache的区别 分类: LINUX 原文地址:Linux中内存buffer和cache的区别 作者:platinaluo 细心的朋友会注意到,当你在linux下频繁存取 ...
- linux中软链接和硬链接,Linux中软链接和硬链接的区别
Linux中软链接和硬链接的区别 链接文件: Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link). Inode 文 ...
- linux下磁盘sda,Linux下磁盘设备文件(sda,sdb,sdc….)变化问题
在Linux下往往会碰到这样的问题,磁盘的设备文件,比如/dev/sda, sdb, sdc等等在某些情况下会混乱掉,比如sda变成了sdb或者sdc变成了sdb等等,这样无形中会导致磁盘设备管理的混 ...
- linux下磁盘sda,Linux下磁盘设备文件(sda,sdb,sdc….)变化的问题
在Linux下往往会碰到这样的问题,磁盘的设备文件,比如/dev/sda, sdb, sdc等等在某些情况下会混乱掉,比如sda变成了sdb或者sdc变成了sdb等等,这样无形中会导致磁盘设备管理的混 ...
- Linux中关于 su 和 su - 的区别
Linux中关于 su 和 su - 的区别 一.切换用户 二.su和su - 1.su 用户名 (不加参数-) 2.su - 用户名 2.我们用man手册查看一下su的详细说明 一.切换用户 我们在 ...
- linux配置内存buffer,Linux中内存buffer和cache的区别
Linux中内存buffer和cache的区别 发布时间:2007-08-31 09:52:55来源:红联作者:ivepace free free 命令相对于top 提供了更简洁的查看系统内存使用情况 ...
- linux中su与su -命令的区别
linux中su与su -命令的区别 转载地址: http://hi.baidu.com/mgqw/blog/item/32182f6e36701adf80cb4ae3.html 2008-05- ...
最新文章
- 数学学渣必备!拍照上传,分步求解,微软解题神器拯救你
- element-ui中el-tree树形控件-树节点的选择(选中当前节点,获取当前id并且获取其父级id)...
- php图片自动裁剪工具,php图片自动裁剪工具,解决图片变形问题,缩略图问题
- 分割点云数据_3D点云深度学习综述:三维形状分类、目标检测与跟踪、点云分割等...
- FreeRTOS笔记2
- Metasploit--后渗透(一些基本操作方法)
- 你的 AI 程序无人问津?不是不够好,而是缺一个展示的舞台
- 主机不可达和端口不可达
- mysql属于数据库管理系统吗_mysql,oracle都属于数据库还是数据库管理系统
- View和ViewGroup中的mParent
- QTableWidgetItem
- deepin安装网速监控
- mysql group by 命令_MySQL常用命令(八)--GROUP BY、HAVING、SELECT子句的顺序
- Android 设计模式之二:MVP模式与MVC模式 .
- 正则匹配过滤出微信公众号模板内容
- 负载阻抗、感抗、容抗
- composer install 中出现用户名密码错误问题的解决方法
- ChatGPT 可以联网了!浏览器插件下载
- 智能卡 7816协议【转】
- umi+@umijs/plugin-qiankun的应用
热门文章
- 【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记
- JAVA 创建学生类
- 第七章:在Spark集群上使用文件中的数据加载成为graph并进行操作(2)
- python制作射击游戏_零基础用Python开发的第一个小游戏——太空射击
- 在matlab中function,Matlab中function函数使用操作方法
- 计算机基础术语巧记,报考28个专业术语,你都知道吗?掌握这些才算入门!
- php 判断文件类型,php 判断图片文件的真实类型
- 虚拟机使用桥接模式设置Linux静态IP
- oracle .bash_profile在哪,oracle 11g 测试用户的 .bash_profile 环境变量,路径设置
- beaninfo详解源码解析 java_【Spring源码分析】Bean加载流程概览