Linux自动引导配置光盘的制作

简介:

     我们安装Linux系统,需要用到系统安装光盘,它会显示一个交互的界面,让我们进行设置,等设置完成后实现自动安装。这个过程是怎么实现的?我们可不可以自定义一个光盘,来实现自动安装,不进行交互呢?答案是肯定的

    
    Redhat Linux系统的安装有两个阶段:
    1,ananconda
    它是一个开源的软件,是linux安装前的配置程序,它依赖于光盘中的isolinux目录中的小linux系统来启动。当我们插入系统安装光盘后,出现的那个交互的让用户来选择系统设置,选择要安装软件包等,都是通过这个程序来实现的,可见isolinux这个目录是非常重要的。
    2,installation
    这一步是真正的安装,根据我们的选择,实现系统安装。
 
    ananconda有两种模式:
    1,图形或命令行模式进行交换的配置
    2,把系统配置写到一个文件中,用ks指定,ananconda会自动读取
 
    而我们怎么实现自动配置呢?
    我们可以自己定义一个配置文件,自定义我们要安装的软件包,自定义系统的设置,让ananconda来读取,这样就不用实现交互了。
    那么什么是ks文件呢?
    ks即kickstart,它主要用于系统的自动安装。ananconda会读取它指向的配置好的文件,实现自动安装。
    kickstart文件主要有三部分:
    1,命令段
    主要是配置操作系统,例如时区,键盘类型,网络的配置等。
 
    2,软件包段
    在安装的过程中,默认要安装的软件包
    package_name  指定要安装的单个软件包
    @groupname    指定要安装的包组
    -package_name 安装包组的时候可以不安装此软件包
 
    3,脚本段
    这个是可选的
    %pre 指定预安装脚本,系统安装前要运行的脚本,并且脚本中用到的命令,isolinux目录中的小linux系统必须支持
    %post 指定后安装脚本,系统安装后要运行的脚本,这些脚本中可以执行很多命令了
 
 
一,我们来写一个kickstart文件,这个文件的后缀必须为.cfg
mkdir /myboot
cd /myboot
vi jia.cfg
install     
安装方式为安装,而不是升级系统
test
表示安装界面为文本
cdrom
指定系统安装文件的位置,光盘
key --skip
跳过输入序列号
lang en_US
系统安装后默认要使用的语言
keyboard us
指定键盘类型
xconfig --startxonboot --resolution 1024x768 --depth 16
系统安装后,系统启动后启用图形界面,指定分辨率和色深
network --device eth0 --bootproto static --ip=172.16.100.8 --netmask=255.255.0.0 --gateway=172.16.0.1 --nameserver=192.168.0.254
配置系统安装后的网络,配置静态ip,地址,掩码,网关,DNS,系统安装成
rootpw redhat
设定root的密码是redhat
firewall --disabled
默认关闭防火墙
authconfig --useshadow --enablemd5
使用shadow文件存放用户密码,并且用md5加密密码存放
selinux --disabled
不启用selinux
timezone --utc Asia/Shanghai
设定时区
zerombr yes
清空mbr重新安装
bootloader --location=mbr --driveorder=sda
把bootloader安装在mbr中
clearpart --all --initlabel
删除磁盘所有分区,如果磁盘没有初始化,直接初始化
part /boot --fstype ext3 --size=100
创建一个100M的分区,挂载到/boot目录,文件系统为ext3
part pv.01 --size=40960
创建物理卷
volgroup vol0 --pesize=8192 pv.01
在pv.01物理卷中创建卷组
logvol swap --fstype swap --name=swap --vgname=vol0 --size=1024
在vol0上创建逻辑卷,并为其创建swap文件系统,逻辑卷名称为swap
logvol /home --fstype ext3 --name=home --vgname=vol0 --size=2048
在vol0上创建逻辑卷,创建ext3文件系统,逻辑卷名称为home,挂载至/home
logvol / --fstype ext3 --name=root --vgname=vol0 --size=29984
在vol0上创建逻辑卷,创建ext3文件系统,逻辑卷名称为root,挂载至/
reboot   
安装完成后自动重启系统
 
%packages
下面定义的是要系统安装的软件包组和单个软件包,这个可以根据我们的需要,实现自定义的安装
@GNOME Desktop Environment
@X Window System
@Printing Support
@Development Tools
elinks
openssh
openssh-server
openssh-clients
vim-enhanced
samba-common
samba-client
gimp
gimp-data-extras
enscript
libcap
ntp
coreutils
elfutils
elfutils-libelf
gimp-print-plugin
gnome-icon-theme
gstreamer
gstreamer-tools
libgnomeprint22
libgnomeprintui22
libgsf
libIDL
libraw1394
nautilus-cd-burner
openmotif
pyorbit
startup-notification
ttmkfdir
firefox
mutt
screen
 
%post
下面定义的是系统安装之后所要执行的命令
id fedora &> /dev/null || useradd fedora
echo fedora | passwd --stdin fedora
sed -i 's@^id:5:@id:3:@' /etc/inittab
 
 
这个jia.cfg文件写好了,这样是不是很麻烦呀,呵呵!
我们也可以用一个图形化的工具,来创建kickstart文件:
mount /dev/cdrom /media
cd /media/Server
rpm -ivh system-config-kickstart--2.6.19.8-2.el5.noarch.rpm
要安装这个软件包后,才能使用这个工具,不同系统软件包的版本不同
有于我们Linux系统安装之后,会有一个文件存放我们的安装时的配置,这个文件就是/root/anaconda-ks.cfg,我们可以以这个文件为模板进行修改
system-config-kickstart
然后导入这个文件,进行修改,最后保存退出即可
 
 
二,插入光盘,我们把光盘目录中的isolinux目录复制到我们的/myboot目录
mount /dev/cdrom /media
cd /myboot
cp -pr /media/isolinux ./
cd isolinux
vi isolinux.cfg
把第一行“default”改为:
default linux ks=cdrom:/jia.cfg
表示默认情况下,这个小linux读取光盘中的ks文件
把第三行“timeout 600”改为:
timeout 5
即那个等待用户输入的界面等待5秒之后,会执行默认选项,即ananconda会依据上面定义的ks文件jia.cfg进行配置
 
三,做光盘
cd /
mkisofs -o boot.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T myboot/
会生成一个boot.iso文件,在/下,这就是我们制作的自动引导光盘
 
    到这里我们自定义的配置光盘已经做好了,可以把boot.iso文件做成光盘,然后导入光驱运行,运行一段时间会出现一个界面"The redhat enterprise linux server is not found...",其实这时候ananconda已经从jia.cfg中读取了系统的配置信息,我们再把光盘换成redhat的安装光盘即可实现根据我们jia.cfg文件中的定义实现自动安装
 
注意:由于我们在jia.cfg文件中定义了多个分区,所有你的磁盘大小要比我们建立的分区的容量之和大,即要大于45G(如果不想要这么大的分区,在jia.cfg文件中更改一下即可)









本文转自 leejia1989 51CTO博客,原文链接:http://blog.51cto.com/leejia/798433,如需转载请自行联系原作者
目录
相关文章
|
24天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
1月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
67 9
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
46 5
|
2月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
71 2
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
513 3
|
2月前
|
监控 安全 网络协议
快速配置Linux云服务器
【10月更文挑战第3天】快速配置Linux云服务器
|
3月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
3月前
|
Linux 编译器 开发工具
快速在linux上配置python3.x的环境以及可能报错的解决方案(python其它版本可同样方式安装)
这篇文章介绍了在Linux系统上配置Python 3.x环境的步骤,包括安装系统依赖、下载和解压Python源码、编译安装、修改环境变量,以及常见安装错误的解决方案。
301 1
|
2月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
92 0
|
2月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境