学习redhat7系统的第一件事就是安装系统,第二件事就是挂载光盘,由于redhat系统是收费的,所以我们装完redhat系统不手动更换yum源的情况下是无法使用在线yum包管理器的,但是光盘里包含了大部分我们日常中所需要的软件包,例如httpd,ftp,gcc和mariadb等,所以装好系统之后我们要做的第一件事就是先把光盘挂载上去,然后配置好基本的生产环境。
当虚拟机中连接了光盘镜像的时候或者是物理机中插入光盘的时候,我们的光盘镜像文件默认设备名称为/dev/sr0,默认挂载路径是/run/media/root/RHEL-7.0 Server.x86
[root@server1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 905M 0 905M 0% /dev
tmpfs 914M 140K 914M 1% /dev/shm
tmpfs 914M 8.9M 905M 1% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/sr0 3.5G 3.5G 0 100% /run/media/root/RHEL-7.0 Server.x86_64
这里我在根目录下递归地创建了/media/cdrom目录用来挂载光盘
[root@server1 /]# mkdir -p /media/cdrom
[root@server1 /]# cd /
[root@server1 /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@server1 /]# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
[root@server1 /]#
这里可能有人会有疑问为什么挂载光盘不是挂载/dev/sr0设备呢,其实用 mount /dev/sr0 /media/cdrom命令挂载光盘也是可以,而且是非常推荐使用的,因为光盘的设备名称就是/dev/sr0,但是我为什么用mount /dev/cdrom /media/cdrom命令挂载呢,看这一条挂载后的输出信息,不难发现挂载的设备就是/dev/sr0
mount: /dev/sr0 is write-protected, mounting read-only
经过长时间对Linux的接触我发现Linux下面有很多文件是被链接的,采用链接的好处不言而喻,既方便我们记忆也可以保护源文件被误操作所破坏,就像windows下有很多文件是快捷方式,抱着怀疑的心我们查看一下/dev/sr0和/dev/cdrom到底有什么关系,意料之外,情理之中,这下我们明白了为什么挂载/dev/cdrom和挂载/dev/sr0的效果是一样的,因为系统中已经把/dev/cdrom链接到sr0了
[root@server1 /]# ls -al /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 Nov 4 08:48 /dev/sr0
[root@server1 /]# ls -al /dev/cdrom
lrwxrwxrwx. 1 root root 3 Nov 4 08:48 /dev/cdrom -> sr0
[root@server1 /]#
关于设备挂载的信息文件存放在/etc/fstab文件中,我们用cat /etc/fstab查看该文件的信息,里面是一些配置信息。
[root@server1 /]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Nov 4 13:25:14 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=f880f8fe-c049-4038-9325-061cc40c1234 /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
[root@server1 /]#
接下来我们修改这个配置文件在最后一行追加一行信息,一共6个字段,每个字段之间最少用一个空格分开,至于多少个空格,你觉得怎么好看就加多少个空格,权限我们选择默认defaults就好,是否校验和是否备份我选择0,不校验不备份,对于文件格式,我们所用的光盘镜像文件iso的文件格式是iso9660,这个需要记住,添加完成后保存退出。
重新挂载/etc/fstab文件中的所有设备,没有出现提示为挂载成功,Linux中秉承没有消息就是最好的消息,所以没有输出就是最好的消息,这条命令会将/etc/fstab文件中所有列出来的设备重新挂载一遍,并且开机后也会自动挂载一次,明白这一点非常重要,不能出现任何差错,每次配置完成后一定要执行mount -a操作,如果出现错误就要修正过来,实在不会就放弃开机挂载,自己开机后手动挂载算了,因为这个文件一旦出现问题直接导致开机无法进入系统,由文件信息可以猜测,该文件记录了boot分区的挂载信息,boot分区都出错了系统肯定起不来,特别是在红帽认证考试过程中,这一配置出错基本0分。
[root@server1 /]# mount -a
[root@server1 /]#
下面尝试一下将挂载目录/media/cdrom写成/media/cdroom,将会看到报错,这时候就要解决这个报错的问题,不然就无法开机,这一切都配置好以后,每次开机系统都会自动挂载光盘而不用我们每次开机都执行mount命令手动挂载。
[root@server1 /]# mount -a
mount: mount point /media/cdroom does not exist
[root@server1 /]#
以上教程是针对虚拟机用户而言,细心的你一定会有个疑问,现在很多人都不用光盘了甚至很多服务器连光驱都没有,那怎么把光盘给挂载上去呢,这也是我写这篇博客的原因,当时我灵光一现,发现事情其实很简单,如果你是用U盘安装的系统,那你的U盘一定写入了redhat的镜像文件,那么你就可以将U盘插在服务器上,然后再用mount命令将U盘挂载到系统中,或者直接将光盘镜像拷贝到服务器中,然后再将光盘镜像里的文件提取出来,这里仅提供一个思路,不作演示,要解压光盘镜像文件可以安装7zip软件,然后用 7z x *.iso解压iso文件。