Bootstrap

Linux配置开机自动挂载本地镜像

Centos7配置自动挂载镜像/搭建本地yum

一、挂载镜像

1.、基本概念

1)文件系统:

文件系统是操作系统用于管理和存储文件的结构和逻辑规则。不同的文件系统有不同的存储方式、文件命名规则、访问权限等。

2)挂载(Mount):

挂载是将一个文件系统接入到已有的文件系统树中的过程。挂载点(mount point)是指一个目录,挂载后,该目录及其子目录下的所有访问都会指向挂载的文件系统。

3)环回设备(Loop Device):

环回设备是一种虚拟设备,允许将一个普通文件(如ISO镜像文件)当作一个块设备(类似硬盘、光盘)来处理。通过环回设备,可以将镜像文件视为一个独立的文件系统并进行挂载。

2、挂载机制的内部工作

1)环回设备配置:

当执行mount -o loop时,内核会分配一个未使用的环回设备,并将镜像文件与之关联。环回设备将镜像文件的内容映射为块设备接口。

2)文件系统识别与挂载:

内核通过文件系统驱动程序读取镜像文件中的文件系统结构,并将其挂载到指定的挂载点。此时,挂载点目录下的访问操作会映射到镜像文件内的文件系统。

3)数据访问与操作:

用户和应用程序可以像访问普通目录一样访问挂载点中的内容。任何读取、写入和文件操作请求都会通过内核和环回设备重定向到镜像文件中。

3、挂载过程:

1) 创建存放本地iso镜像的目录/opt/cdrom和挂载点目录/mnt/cdrom

mkdir /opt/cdrom
mkdir /mnt/cdrom

2) 上传/复制iso镜像文件至/opt/cdrom目录下
在这里插入图片描述
3) 使用fuseiso工具将iso镜像挂载至/mnt/cdrom目录下(fuseiso支持将iso镜像可写可读挂载至挂载点目录,注意挂载点必须为空目录

fuseiso /opt/cdrom/CentOS-7-x86_64-DVD-2207-02.iso /mnt/cdrom -o allow_other
[root@testuser1 ~]# mount
				 /**查看挂载状况
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=1924380k,nr_inodes=481095,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sda2 on / type ext4 (rw,relatime,seclabel,data=ordered)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=2036)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda3 on /opt type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sda5 on /home type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sda6 on /var type ext4 (rw,relatime,seclabel,data=ordered)
/opt/cdrom/CentOS-7-x86_64-DVD-2207-02.iso on /mnt/cdrom type iso9660 (ro,relatime) //#镜像已被挂载至“/mnt/cdrom”目录下
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=387992k,mode=700,uid=42,gid=42)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=387992k,mode=700)
[root@testuser1 ~]#
[root@testuser1 ~]#
[root@testuser1 ~]#cat /proc/mounts 
				/**查看挂载状况

4)设置开机自动挂载本地iso镜像文件

vi /etc/fstab
/*最后另起一行添:
/opt/cdrom/CentOS-7-x86_64-DVD-2207-02.iso /mnt/cdrom             iso9660 loop            0 0
[root@testuser1 ~]# 
[root@testuser1 ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Sun Jun 23 12:03:44 2024
#
# 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
#
UUID=5986d29e-0ee9-4ca9-b64e-45b027dc8240 /                       ext4    defaults        1 1
UUID=934f3f2c-3afa-40a5-9017-79ac7727cf1e /home                   ext4    defaults        1 2
UUID=3459b744-5961-44f2-b1ae-82cc53953836 /opt                    ext4    defaults        1 2
UUID=79ca0d1a-13d4-4c09-b96c-5826b7856fbb /var                    ext4    defaults        1 2
UUID=32a77778-1264-4537-aded-10f188f667d9 swap                    swap    defaults        0 0
//#设置开机自动挂载本地iso镜像文件
/opt/cdrom/CentOS-7-x86_64-DVD-2207-02.iso /mnt/cdrom             iso9660 loop            0 0    
[root@testuser1 ~]#

二、配置YUM

1、基本概念

1)概念:

yum(Yellowdog Updater, Modified)是一个基于 RPM 包管理的命令行工具,广泛用于 Red Hat 系列的 Linux 发行版,如 Fedora、CentOS 和 RHEL。它主要用于自动化软件包的安装、更新、删除和管理。以下是 yum 的概念和作用的详细解释。

2)包管理工具:

yum 是一个高级的包管理工具,用于处理 RPM 软件包的安装、更新和删除。它可以自动解决软件包之间的依赖关系,并确保系统中的软件包保持一致和完整。

3)仓库(Repository):

仓库是存储软件包的服务器或本地目录。yum 通过访问配置的仓库来获取软件包及其元数据。仓库的配置文件通常位于 /etc/yum.repos.d/ 目录中。

4)元数据(Metadata):

元数据包含关于仓库中软件包的信息,例如软件包的名称、版本、依赖关系等。yum 依赖这些元数据来解析和解决包的依赖关系。

5)缓存(Cache):

yum 使用缓存来存储下载的元数据和软件包,以提高操作速度并减少重复下载。缓存目录通常位于 /var/cache/yum/。

2、作用和用途

1)自动化软件包管理:

yum 可以自动下载并安装软件包,同时解决软件包之间的依赖关系。例如,如果某个软件包需要其他包作为依赖,yum 会自动安装这些依赖包。

2)系统更新:

yum 允许用户方便地更新系统中的所有软件包,确保系统使用最新的软件版本和安全补丁。命令 yum update 可以一键更新所有已安装的软件包。

3)包的查询和信息显示:

用户可以使用 yum 来查询可用的软件包、已安装的软件包以及软件包的详细信息。例如,命令 yum list available 列出所有可用的软件包,yum info package_name 显示特定软件包的信息。

4)软件包的删除:

yum 可以安全地删除软件包及其不再需要的依赖包。命令 yum remove package_name 删除指定的软件包。

5)搜索功能:

yum 提供了强大的搜索功能,允许用户根据关键字搜索软件包。例如,命令 yum search keyword 可以查找与关键字相关的软件包。

6)仓库管理:

yum 支持多种仓库配置,允许用户添加、删除和管理多个软件仓库。用户可以通过编辑仓库配置文件来指定仓库的 URL 和 GPG 密钥等信息。

3、配置过程:

1)/etc/yum.repos.d/目录下配置local.repo文件绑定挂载镜像的目录

[root@testuser1 ~]# vi /etc/yum.repos.d/local.repo
[root@testuser1 ~]# cat /etc/yum.repos.d/local.repo
[local]
name=Local Repository
baseurl=file:///mnt/cdrom          //#配置绑定挂载镜像的目录
enabled=1
gpgcheck=0
[root@testuser1 ~]# 
[root@testuser1 ~]# 
[root@testuser1 ~]#

2) local.repo文件配置项介绍:

[local]:方括号中的内容是仓库的 ID。每个仓库都需要一个唯一的 ID,用户可以根据需要任意命名。这个 ID 用于在 yum 命令中引用该仓库。
name=Local Repository:name 是对仓库的描述。这是一个用户友好的名称,可以是任意字符串,用于标识和描述该仓库的用途。
baseurl=file:///path/to/your/local/repo:baseurl 指定了仓库的基本 URL,可以是本地文件路径、HTTP URL 或 FTP URL。常见的格式有:

file:///path/to/your/local/repo:本地目录路径
http://your.repo.url/path:HTTP URL
ftp://your.repo.url/path:FTP URL

enabled=1:enabled 指定是否启用该仓库。值为 1 表示启用,值为 0 表示禁用。如果禁用,yum 不会从该仓库中安装或更新软件包。
gpgcheck=1:gpgcheck 指定是否进行 GPG 签名检查。值为 1 表示启用 GPG 签名检查,值为 0 表示禁用。启用 GPG 签名检查可以确保从该仓库安装的软件包是经过签名验证的,增强了软件包的安全性。
gpgkey=file:///path/to/your/RPM-GPG-KEY:gpgkey 指定了用于验证软件包签名的 GPG 公钥路径。可以是本地文件路径或 URL。此配置项只有在 gpgcheck=1 时才会生效。

三、总结

在Linux系统中,挂载镜像文件(例如ISO文件或磁盘映像文件)具有多种好处,包括便捷性、灵活性以及提高数据访问的效率。以下是一些主要的好处:

1、不需要物理介质:

挂载镜像文件不需要实际的光盘或USB驱动器,这样可以减少物理介质的磨损和丢失风险。

2、方便软件安装:

许多Linux发行版和软件都以ISO文件形式发布。挂载这些ISO文件可以直接访问其内容并进行安装,而不需要先将其刻录到光盘或复制到USB驱动器。

3、提高访问速度:

与物理光盘相比,从硬盘或SSD中访问镜像文件的速度更快,这有助于提高数据读取和写入的效率。

4、节省空间:

多个镜像文件可以存储在硬盘上,并根据需要进行挂载和卸载,而不需要占用多个物理设备。

5、便于备份和恢复:

镜像文件可以用作系统和数据的备份。通过挂载这些镜像,可以轻松访问备份数据并进行恢复。

6、测试和开发:

开发人员和系统管理员可以使用镜像文件来测试软件安装和系统配置,而不需要每次都使用物理介质。

7、系统管理和部署:

系统管理员可以使用镜像文件进行大规模软件部署和系统更新,简化管理流程。

8、多操作系统支持:

通过挂载不同的镜像文件,可以在同一台机器上轻松地访问和管理多个操作系统或版本。

9、安全性:

可以通过挂载镜像文件来进行系统镜像和数据分析,而不对原始数据进行任何修改,从而提高数据分析和故障排除的安全性。

;