『学了就忘』Linux基础命令 — 38、Linux中光盘的挂载
提示:关于Linux系统中光盘的挂载,我们了解一下即可,现在已经很少用到了。但是我们可以通过在Linux系统中挂载光盘,来加深对Linux系统中挂载操作的学习。
光盘挂载的前提依然是指定光盘的设备文件名,不同版本的Linux,设备文件名并不相同:
CentOS5.x
以前的系统,光盘设备文件名是/dev/hdc
。CentOS6.x
以后的系统,光盘设备文件名是/dev/sr0
。
不论哪个系统都有软连接/dev/cdrom
,与可以作为光盘的设备文件名。
如下图所示:
可以看到/dev/cdrom
就是/dev/sr0
的软链接(相当于Windows系统的快捷方式)。推荐使用源文件dev/sr0
。
Linux系统下在根目录中默认给我们提供了三个空文件夹:
media
(推荐挂光盘)misc
(推荐挂网络存储盘)mnt
(推荐挂U盘或者移动硬盘)
我习惯在mnt
文件夹中创建空目录来进行挂载外部设备。下面总结一下挂载光盘的步骤。
步骤一:创建一个空目录
在mnt
文件夹中创建一个名称为cdrom
空目录
[root@localhost /]# mkdir /mnt/cdrom
不建议在根目录创建过多的一级目录,不方便管理。
步骤二:找到光盘的设备文件名称
CentOS6.x
以后的系统,光盘设备文件名是/dev/sr0
,这是固定的,记住就可以。
在CentOS5.x
以前的系统,光盘设备文件名是/dev/hdc
,因为很早以前的系统,硬盘和光盘系统是统一命名的,在很早以前认为系统有两块硬盘就够了hda
,hdb
,然后光盘默认识别就是hdc
。但是对存储空间的需求越来越大,导致两块盘不能满足需求了,就需要继续添加新的硬盘,这个时候光盘的设备文件名的识别会自动向后便变动,如有三块硬盘,光盘的设备文件名hdd
。
这个时候就会导致,光盘的设备文件就不是固定的了,会导致我在一台电脑上挂载光盘,就先要查询光盘的设备文件名是什么,然后在进行挂载。所以在CentOS6.x
以后的系统,光盘的设备文件名就固定了为sr0
,第一台光驱的设备文件名为sr0
,第二台光驱的设备文件名为sr1
,以此类推。这样做的好处是和硬盘的设备文件名就不相干了。
步骤三:挂载光盘
[root@localhost ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom/
# 注意:
# -t文件系统:加入文件系统类型来指定挂载的类型,
# 可以ext3、ext4、iso9660等文件系统。
# 挂载光盘就用iso9660类型的文件系统类型。
# 也可以直接省略-t iso9660,
# 挂载光盘时候系统自动添加。
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom/
执行上边命令会报错,说你必须指定文件系统。如下:
[root@localhost /]# mount /dev/sr0 /mnt/cdrom/
mount: you must specify the filesystem type
我们添加上文件系统,再次执行。如下:
[root@localhost /]# mount -t iso9660 /dev/sr0 /mnt/cdrom/
mount: no medium found on /dev/sr0
这回的报错信息就准确了,告诉我们说在/dev/sr0
中没有发现光盘。
需要在虚拟机软件中添加cd
文件,放入光驱中。
如下图:
再次输入光盘挂载命令。
[root@localhost /]# mount /dev/sr0 /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
还有一行报错,说/dev/sr0
想要读写权限,但是现在被赋予了只读权限。因为光盘的使用就是一次性写入,之后就只读就可以了。所以这行报错,可以认为是光盘正确挂载的标记。
最后执行mount
命令在确认一下。
步骤四:访问关盘中的数据
需要去挂载点中访问光盘的数据,在/mnt/cdrom/
目录中。
这里边都是光盘中的内容。
步骤五:卸载挂载点
无论是挂载的光盘还是U盘,用完后就需要卸载掉。如果你没有卸载就换cd
的话,就会出现问题。这是有一定几率的,如果你不卸载,多换几次cd
的话,你会发现你无论放入任何光盘,你读出来的数据都不是你放入的cd
中的数据。而是虚拟机自带的工具vmtools
中的内容。之后你即使卸载的光盘,也不在好使了。
这个时候的解决方法是,在虚拟机中把现有的光驱移除,在添加一个新的光驱。
如下图:
卸载挂载点
# 因为设备文件名和挂载点已经连接到一起,卸载哪一个都可以
[root@localhost ~]# umount /dev/sr0
[root@localhost ~]# umount /mnt/cdrom
# 卸载
[root@localhost cdrom]# umount /dev/sr0
umount:/mnt/cdrom: device is busy.
(In some cases useful info about processes that use the device is found by 1sof(8) or fuser(1))
# 上边报错说设备正忙,以为此时位置正在光盘里边cdrom目录中,要退出在进行卸载。
# 注意:卸载的时候需要退出光盘目录,才能正常卸载。
问题:挂载点为什么要使用空目录
# 在/mnt/cdrom目录中创建两个文件abc,bcd
[root@localhost cdrom]# ls
abc bcd
# 在/mnt/cdrom目录上挂载光盘
[root@localhost cdrom] # mount /dev/sr0 /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
# 可以看到看到光盘是可以挂载到有文件的目录上。
# 查看/mnt/cdrom目录中的文件
[root@localhost cdrom]# ls /mnt/cdrom/
CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6
EFI Packages RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6
GPL repodata TRANS.TBL
images RPM-GPG-KEY-CentOS-6
# 文件夹中并没有之前的abc,bcd文件了。而只有光盘中的数据。
# 把光盘挂载点卸载了
[root@localhost cdrom]# umount /dev/sr0
# 再次查看/mnt/cdrom目录中的文件
[root@localhost cdrom]# ls /mnt/cdrom/
abc bcd
# 发现abc,bcd文件又出现了。
是因为/mnt/cdrom
作为目录的时候,里边是一个一个的block
来存储数据。当我把/mnt/cdrom
作为一个挂载点的时候,是把这个目录作为进入另一个分区的介入点(光盘也是一个存储空间,是一个独立的空间),所以/mnt/cdrom
作为目录的访问点就不在了,但是里边的数据并没有删除,所以/mnt/cdrom
挂载点一旦卸载,/mnt/cdrom
目录又回归原始位置,就又可以读取出原来文件中的数据了。
这就是为什么说一定要用空目录做挂载点,因为有数据的目录,一旦作为挂载点,原来目录中的数据是不能查看也不能删除,占用系统资源,不合理。
『学了就忘』Linux基础命令 — 38、Linux中光盘的挂载的更多相关文章
- 『学了就忘』Linux基础 — 6、VMware虚拟机安装Linux系统(超详细)
目录 1.打开VMware虚拟机软件 2.选择Linux系统的ISO安装镜像 3.开启虚拟机安装系统 (1)进入Linux系统安装界面 (2)硬件检测 (3)检测光盘 (4)欢迎界面 (5)选择语言 ...
- 『学了就忘』Linux基础 — 16、Linux系统与Windows系统的不同
目录 1.Linux严格区分大小写 2.Linux一切皆文件 3.Linux不靠扩展名区分文件类型 4.Linux中所有的存储设备都必须在挂载之后才能使用 5.Windows下的程序不能直接在Linu ...
- 『学了就忘』Linux基础命令 — 24、文件基本权限的相关命令
目录 1.chmod命令 2.权限模式 (1)用户身份. (2)赋予方式. (3)权限. 3.数字权限 4.文件常用权限 5.chown命令 6.chgrp命令 7.总结 常用基本权限操作命令: ch ...
- 『学了就忘』Linux基础命令 — 26、帮助命令
目录 1.man命令 (1)man命令的快捷键 (2)man命令的帮助级别(了解即可) (3)man命令的使用 2.info命令 3.help命令 4.--help选项 1.man命令 man是最常见 ...
- 『学了就忘』Linux基础命令 — 37、Linux中挂载操作的相关命令
目录 1.mount命令介绍 (1)mount命令说明 (2)mount命令格式 2.mount命令示例 3.mount -a命令说明 4.-o特殊选项说明 5.exec/noexec选项说明 挂载就 ...
- 『学了就忘』Linux文件系统管理 — 66、通过图形界面进行LVM分区
目录 1.选择自定义分区 2.分配boot分区 3.创建LVM物理卷 4.生成卷组 5.创建逻辑卷 6.格式化安装 我们先用新安装Linux系统时的图形化界面,来演示一下LVM逻辑卷如何进行分区. 提 ...
- 『学了就忘』Linux软件包管理 — 40、Linux系统软件包介绍
目录 1.Linux系统软件包分类 2.源码包说明 3.二进制包说明 4.RPM包的优缺点 4.RPM包的两种安装方法 5.总结 1.Linux系统软件包分类 Linux系统下的软件包只有源码包和二进 ...
- 『学了就忘』Linux文件系统管理 — 58、常用硬盘管理相关命令
目录 1.df命令 2.du命令 3.fsck文件系统修复命令 4.显示磁盘状态dumpe2fs 5.查看文件的详细时间 6.判断文件类型 1.df命令 df命令用于统计分区的占用状况. [root@ ...
- 『学了就忘』Linux服务管理 — 79、源码包安装的服务管理
目录 1.源码包服务的启动管理 2.源码包服务的自启动管理 3.让源码包服务被服务管理命令识别 1.源码包服务的启动管理 # 通过源码包的安装路径,找到该服务的启动脚本, # 也就是获得该服务的启动脚 ...
随机推荐
- Unittest 框架之断言,你学会了吗??
unittest断言 Python在 unittest.TestCase 类中提供了很多断言方法.断言方法检查你认为应该满足的条件是否确实满足.如果该条件确实满足,你对程序行为的假设就得到了确认,你就 ...
- 四、mybatis动态sql
# 前言前面mysql都是通过静态sql进行查询的,但是如果业务复杂的时候,我们会遇到引号问题,或者多一个空格,这就使得sql代码编写错误了,所以为了解决这个问题,我们有了动态sql. Mybatis ...
- Spring源码之创建AOP代理之增强器的获取
前言 在上一篇博文中我们说到了通过自定义配置完成了对AnnotationAwareAspectJAutoProxyCreator类型的自动注册,那么这个类究竟做了什么工作从而完成AOP的操作呢?首先我 ...
- 订单峰值激增 230%,Serverless 如何为世纪联华降本超 40%?|双11 云原生实践
作者 | 朱鹏 导读:2020 年 双11,世纪联华基于阿里云函数计算 (FC) 弹性扩容,应用于大促会场 SSR.线上商品秒杀.优惠券定点发放.行业导购.数据中台计算等多个场景,业务峰值 QPS 较 ...
- spark性能优化(一)
本文内容说明 初始化配置给rdd和dataframe带来的影响 repartition的相关说明 cache&persist的相关说明 性能优化的说明建议以及实例 配置说明 spark:2.4 ...
- OGG-如何只同步最近某个时间范围的数据
一.需求,某客户希望使用OGG只同步时间大于2021-02-01日期之后的数据变换 需求如标题所示,如何使用OGG进行配置? 客户环境需要同步的表有几百G,表数据太大了;如果同步所有数据,目标库空间存 ...
- 从C过渡到C++需要了解的“新特性”
第一个C++程序 #include <iostream> using namespace std; //编译指令 int main() { cout << "Hell ...
- C 函数指针 函数指针数组 转移表
内容来自<c和指针>,整理后方便个人理解 高级声明 cdel程序可以方便的给出声明的释义 指向函数的指针 int ( *f ) ( int n_values, float amount ) ...
- Less-(38~41) 堆叠注入
首先申明,Less-(38~41)可以采取和Less-(1~4)相同的解法:(一一对应) 然而,他们的漏洞其实更大,我们可以做更多具有破坏性的事情. 代码审计: Less-(38~41): 41的$s ...
- 【c++ Prime 学习笔记】第16章 模板与泛型编程
面向对象编程(OOP)和泛型编程(GP)都能处理在编写程序时类型未知的情况 OOP能处理运行时获取类型的情况 GP能处理编译期可获取类型的情况 标准库的容器.迭代器.算法都是泛型编程 编写泛型程序时独 ...