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,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
2月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
345 11
|
9月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
678 3
|
5月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
308 0
|
7月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
495 11
|
6月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
368 0
|
8月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
383 10
|
9月前
|
Java Linux 应用服务中间件
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
1532 21
|
8月前
|
人工智能 Kubernetes Ubuntu
linux配置IP
linux配置IP
916 1
|
9月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。