U盘引导通过FTP安装 CentOS Linux 操作系统,更加确切地说:SYS


syslinux 是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。

1. 制作U盘syslinux引导

这里使用syslinux-4.04.tar.gz 解压

cd /D syslinux-4.04\win32
syslinux.exe -ma H:

这时候U盘下会生成一个隐藏文件 ldlinux.sys

2. 复制 CentOS 启动文件到U盘

用winrar打开CentOS.iso,把isolinux文件夹拷贝到U盘,并把isolinux.cfg重命名为: syslinux.cfg.

3. 我是用了一台 windows 的 filezilla server 当 ftp 的,把 centos.iso (推荐用DVD版本)解压到 E:\centos64 ,把 E:\ 当作 ftp 的根目录

修改U盘syslinux文件夹下的syslinux.cfg

default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img ks=nfs:192.168.10.83:/data/lnmp/ks.cfg
label text
kernel vmlinuz
append initrd=initrd.img text ks=nfs:192.168.10.83:/data/lnmp/ks.cfg
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -

红颜色的文字是添加的kickstart自动安装脚本,这里我为什么用nfs,而不用放置centos文件的windows ftp服务器呢,因为实验了N次,filezilla传输文件会把ks.cfg变成windows格式,导致文档最后的%post命令无法执行.

下面贴出ks.cfg

# Kickstart file automatically generated by anaconda.

install
url --url ftp://192.168.10.78//CentOS64
lang en_US.UTF-8
keyboard us
text
network --device eth0 --bootproto static --ip 192.168.132.100 --netmask 255.255.255.0 --gateway 192.168.132.1 --nameserver 192.168.12.8 --hostname localhost
rootpw --iscrypted $1$ueR1iSzo$QLhVj0v3/NyKZXSmyP5H20
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda
reboot
firstboot --disable
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux
#part / --fstype ext3 --size=40960
#part swap --size=4096
#part /data --fstype ext3 --size=1 --grow

%packages
@base
@core
@development-libs
@development-tools
@editors
@ftp-server
@system-tools
@text-internet
keyutils
trousers
fipscheck
device-mapper-multipath
imake
audit

%post --nochroot
#!/bin/bash
mkdir -p /mnt/nfs
mount -t nfs 192.168.10.83:/data/lnmp /mnt/nfs
cp /mnt/nfs/* /mnt/sysimage/tmp

%post
chkconfig acpid off
chkconfig atd off
chkconfig autofs off
chkconfig avahi-daemon off
chkconfig bluetooth off
chkconfig cups off
chkconfig firstboot off
chkconfig gpm off
chkconfig haldaemon off
chkconfig hidd off
chkconfig ip6tables off
chkconfig irqbalance off
chkconfig kudzu off
chkconfig lvm2-monitor off
chkconfig mcstrans off
chkconfig mdmonitor off
chkconfig netfs off
chkconfig nfslock off
chkconfig pcscd off
chkconfig portmap off
chkconfig rawdevices off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig sendmail off
chkconfig xfs off
chkconfig yum-updatesd off

cat>>/etc/security/limits.conf<<EOF
* soft nofile 65535
* hard nofile 65535
EOF

%post --nochroot%post 这两部分可以简化我们装完系统的后续配置。分区部分我注释掉了,个人可以根据自己的分区情况修改。这里贴出syslinux.cfg指定ks文件的语法:

ks
Gives the location of the kickstart file to be used for installation. If only ks is given, the file is assumed to be on NFS. The ks parameter may take these other forms:
ks=cdrom:<device>
ks=file:<path> (path = 'fd0/ks.cfg', for example)
ks=ftp://<path>
ks=hd:<dev>:<path> (dev = 'hda1', for example)
ks=http://<host>/<path>
ks=nfs[:options]:<server>:<path>
ks=bd:<biosdev>:<path> (biosdev = '80p1', for example, note this does not work for BIOS RAID sets)

相关内容