听别人说现存的LinuxLiveCD到场自身的基石和ramfs

作者:操作系统

完毕目的:基于现成的Linux LiveCD加入本人的内核和ramfs

依附现存的LinuxLiveCD参与自身的基础和ramfs

原LiveCD:install-amd64-minimal-20130711.iso (gentoo)

干活系统:CentOS

1.复制原LiveCD的内容:

 

[[email protected] Downloads]# mkdir /mnt/livecd
[[email protected] Downloads]# mkdir /mnt/img
[[email protected] Downloads]# mount -t iso9660 -o loop install-amd64-minimal-20130711.iso /mnt/livecd/
mount: /dev/loop0 is write-protected, mounting read-only
<pre name="code" class="html">[[email protected] Downloads]# cp -r /mnt/livecd/* /mnt/img

 

2.切换成/mnt/img, 查看一下/mnt/img上面包车型地铁从头到尾的经过。

 

 

[[email protected] img]# ls
gentoo.efimg             image.squashfs  livecd  README.txt
gentoo.efimg.mountPoint  isolinux    

3.把温馨的基本和ramfs放入到isolinux文件夹里。这里根本是bzImage, ramfs是ramfs.tar.gz

 

 

[[email protected] img]# ls isolinux/
boot.cat  elilo.efi  F4.msg  F7.msg      isolinux.bin  memtest86
boot.msg  F2.msg     F5.msg  gentoo      isolinux.cfg  ramfs.tar.gz
bzImage   F3.msg     F6.msg  gentoo.igz  kernels.msg   System.map-gentoo

4.改变isolinux.cfg, 出席一项运行(在这之中append那一项,能够依照本身索要来增减参数):

 

 

label hello-test
  kernel bzImage
  append root=/dev/ram init=/linuxrc initrd=ramfs.tar.gz

5.回去img,制作本人的iso文件

 

 

mkisofs -R -b isolinux/isolinux.bin -c isolinux/boot.cat -o /tmp/test.iso -V "test Linux" -no-emul-boot -boot-load-size 4 -boot-info-table .

6.把test.iso直接用虚拟机,或刻录下去,进入运维分界面时,按TAB键,能够见见hello-test这一项,输入它,运营:

 

图片 1

原LiveCD:install-amd64-minimal-二〇一二0711.iso (gentoo) 工作系统:CentOS 1.复制原LiveCD的剧情: [[email protected]

编者按:对于大多私有站长以来,每趟业务扩大容积装Linux系统都是件很劳苦的事务。有的IDC技能不会装Linux系统,恐怕部分便是装一遍系统接受一定的花销。为此制作一个简短的CentOS发行版是很要紧的。上面就二只来看下具体制作进度吧。
  一、制作LTOS具体进度
  光盘结构介绍
  * isolinux 目录存放光盘运维时的装置分界面音讯
  * images 目录包罗了必需的启航影像文件
  * CentOS 目录存放安装软件包及消息
  * .discinfo 文件是设置价质的辨别消息
  * lemp.tar.gz 文件存放系统初阶化及其相关程序安装脚本.
  》》碰到认证:CentOS 5.3-i386 Vmware Workstation上做到制作专门的学业.
  1.设置制作发行版所需的为主软件包
  # yum -y install anaconda-runtime createrepo yum-utils anaconda anaconda-help busybox-anaconda mkisofs2.制作ltos源文件夹
  # mkdir /ltos
  # mkdir /mnt/cdrom
  # mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom/ 挂载光盘镜像
  也许挂载ISO文件到/mnt/cdrom
  # mount -t iso9660 -o loop centos.xxx.iso /mnt/cdrom 将CentOS的ISO文件挂载到/mnt/cdrom目录
  # cd /mnt/cdrom
  # tar -cf - . | ( cd /ltos ; tar -xvpf - ) //将/mnt/cdrom里的文件利用tar全体拷贝到/ltsos这几个目录下.
  #cd /ltos //进入此目录删除一些无关的文件,仍后进入前面包车型地铁工作.
  [[email protected] ltos]# ls -al
  total 88
  drwxr-xr-x 6 root root 4096 Apr 11 21:00 .
  drwxr-xr-x 27 root root 4096 Apr 12 05:26 ..
  drwxr-xr-x 2 root root 36864 Apr 8 16:06 CentOS
  -rw-r--r-- 1 root root 97 Apr 8 16:43 .discinfo
  drwxr-xr-x 4 root root 4096 Mar 21 23:04 images
  drwxr-xr-x 2 root root 4096 Apr 12 00:00 isolinux
  -rw-r--r-- 1 root root 14371 Apr 11 23:16 lemp.tar.gz //那一个软件包是我们后边要树立的,读者能够深入分析一下末尾的ks.cfg脚本就足以清楚他的用途.
  drwxr-xr-x 2 root root 4096 Apr 11 21:00 repodata
  -r--r--r-- 1 root root 7048 Mar 21 23:05 TRANS.TBL3.定制package.list软件包清单
  如安装三个CentOS5.3的类别,依照自身的急需选拔软件包;假设想你的系统十分小,提出采用最少的包。安装到位以往,在系统里会时有发生日志。日文文件存放在/root/install.log。
  # cat install.log | grep Installing | sed 's/Installing //g'|sed 's/^[0-9] ://g' > packages.list
  #mkdir /ltos/CentOS 建设构造存放rpm包的目录.创造机关提取相关rpm脚本:
  #vi cprpms.sh
  #!/bin/bash
  DEBUG=0
  LT_CD=/mnt/cdrom
  ALL_RPMS_DIR=/mnt/cdrom/CentOS #挂载光盘存放的目录
  LT_RPMS_DIR=/ltos/CentOS #存放RPM包的目录
  packages_list=/root/packages.list
  number_of_packages=`cat $packages_list | wc -l`
  i=1
  while [ $i -le $number_of_packages ] ; do
  line=`head -n $i $packages_list | tail -n -1`
  name=`echo $line | awk '{print $1}'`
  version=`echo $line | awk '{print $3}' | cut -f 2 -d :`
  if [ $DEBUG -eq "1" ] ; then
  echo $i: $line
  echo $name
  echo $version
  fi
  if [ $DEBUG -eq "1" ] ; then
  ls $ALL_RPMS_DIR/$name-$version*
  if [ $? -ne 0 ] ; then
  echo "cp $ALL_RPMS_DIR/$name-$version* "
  fi
  else
  echo "cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/"
  cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/
  # in case the copy failed
  if [ $? -ne 0 ] ; then
  echo "cp $ALL_RPMS_DIR/$name-$version* "
  cp $ALL_RPMS_DIR/$name* $LT_RPMS_DIR/
  fi
  fi
  i=`expr $i 1`
  done试行以上脚本将定制ltos须要的rpm复制到/ltos/CentOS目录
  再次来到到/ltos目录下,实行createrepo程序生成repodata下的comps.xml文件
  #cd /ltos
  #createrepo -g repodata/comps.xml .4.配置kickstart脚本
  通过CentOS5.3定制安装系统以后,会在系统里发生三个kickstart安装脚本(/root/anaconda-ks.cfg)
  # cp anaconda-ks.cfg /ltos/isolinux/ks.cfg
  # vi /ltos/isolinux/ks.cfg 并修改脚本如下:
  # Kickstart file automatically generated by anaconda.
  # Install CentOS instead of Upgrade
  install
  text
  #install from cd-rom
  cdrom
  lang en_US.UTF-8
  keyboard us
  # Skip the X Configuration
  skipx
  network --device eth0 --bootproto dhcp --hostname ltos.linuxtone.org
  rootpw --iscrypted $1$jPZf0P0r$JRe7pd.5wq9k.VZEMOgdq/
  # Setup the firewall with SSH, HTTP/S, Syslog, Webmin, and Netflow enabled
  firewall --enabled --port=22:tcp --port=69:udp --port=80:tcp --port=443:tcp
  authconfig --enableshadow --enablemd5
  # Disable SELinux
  selinux --disabled
  timezone --utc Asia/Shanghai
  # Clear the Bootloader and load it to the Master Boot Record
  bootloader --location=mbr
  zerombr yes
  # Set the Mouse
  mouse generic3ps/2
  # 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 --all --initlabel
  part /boot --fstype ext3 --size=100 --asprimary
  part / --fstype ext3 --size=25000
  part swap --size=4096
  part /data --fstype ext3 --size=1 --grow
  #--- Reboot the host after installation is done
  reboot
  %packages
  @development-libs
  @editors
  @system-tools
  @text-internet
  @legacy-network-server
  @dialup
  @core
  @base
  @mail-server
  @development-tools
  audit
  net-snmp-utils
  sysstat
  iptraf
  dstat
  tftp
  lynx
  device-mapper-multipath
  imake
  -zsh
  -vnc
  -zisofs-tools
  -xdelta
  -openldap-clients
  -samba-client
  -fetchmail
  -dovecot
  -spamassassin
  #
  # ------- Begin LEMP Install ---------
  #
  %post --nochroot
  # Mount CDROM
  mkdir -p /mnt/cdrom
  mount -r -t iso9660 /tmp/cdrom /mnt/cdrom
  # Copy our tar file and extract it
  cp /mnt/cdrom/lemp.tar.gz /mnt/sysimage/tmp/lemp.tar.gz > /dev/null
  cd /mnt/sysimage/tmp/
  tar -zxvf lemp.tar.gz > /dev/null
  # Move the contents of the tar into their new locations
  cp -R /mnt/sysimage/tmp/boot/* /mnt/sysimage/boot/ > /dev/null 2>/dev/null
  cp -R /mnt/sysimage/tmp/etc/* /mnt/sysimage/etc/ > /dev/null 2>/dev/null
  # Unmount CDROM
  umount /mnt/cdrom
  %post
  #vim syntax on
  sed -i "8 s/^/alias vi='vim'/" /root/.bashrc 2>/dev/null
  echo 'syntax on' > /root/.vimrc 2>/dev/null
  # Disable IPv6 until Cacti at least supports it
  echo "alias net-pf-10 off" >> /etc/modprobe.conf
  echo "alias ipv6 off" >> /etc/modprobe.conf
  /sbin/chkconfig --level 35 ip6tables off
  #init_ssh
  ssh_cf="/etc/ssh/sshd_config"
  sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf
  sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf
  #client
  sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf
  # Remove the ISO File translation files
  find / -name TRANS.TBL -exec rm {} ; /dev/null 2>/dev/null
  # Remove some unneeded services
  #--------------------------------------------------------------------------------
  cat << EOF
   --------------------------------------------------------------
  | === Welcome to Tunoff services === |
   --------------------------------------------------------------
  EOF
  #---------------------------------------------------------------------------------
  for i in `ls /etc/rc3.d/S*`
  do
  CURSRV=`echo $i|cut -c 15-`
  echo $CURSRV
  case $CURSRV in
  crond | irqbalance | microcode_ctl | network | random | sendmail | sshd | syslog | local | mysqld )
  echo "Base services, Skip!"
  ;;
  *)
  echo "change $CURSRV to off"
  chkconfig --level 235 $CURSRV off
  service $CURSRV stop
  ;;
  esac
  done
  # file descriptors
  ulimit -HSn 65535
  echo -ne "
  * soft nofile 65536
  * hard nofile 65536" >>/etc/security/limits.conf5.让系统从kickstart配置运转
  # vi /ltos/ isolinux/ isolinux.cfg
  default auto
  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
  label text
  kernel vmlinuz
  append initrd=initrd.img text
  label auto
  kernel vmlinuz
  append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img
  label ks
  kernel vmlinuz
  append ks initrd=initrd.img
  label local
  localboot 1
  label memtest86
  kernel memtest
  append -

原LiveCD:install-amd64-minimal-20130711.iso (gentoo)

  二.特性化定制你的类别(问答情势)
  1.怎样定制安装开机画面:
  运转画面用的是一种比较离奇的格式lss16,它界定图片应用16种颜色,除去前景和背景象只好有14种颜色。大家供给ppmtolss16 giftopnm等先后,系统一般暗许都设置了。
  一般用gimp生成二个index方式的gif图形,颜色限制为14, 然后透过如下的艺术实行转:
  安装yum -y install syslinux
  giftopnm < splash.gif | ppmtolss16 > splash.lss
  此外你还必要修改isolinux/boot.msg文件,做一些天性化的提醒.
  ?如何生成高素质的图。
  先用photoshop展开任何一张图片,然后在文件的下拉菜单里,保存的时候采用“保存为WEB和配备选择格式“,再然后选取gif再选取16色保存就OK.
  仍后选用giftopnm < splash.gif | ppmtolss16 > splash.lss 调换就能够.
  2.哪些生成GRUP的xpm文件?
  (1) 将备一张640 x 480 16色图片,档案类型为JPG的格式
  (2)convert grub.gif -colors 14 -geometry 640x480! splash.xpm && gzip -9 splash.xpm
  (3) 直接沟通/boot/grup/splash.xpm.gz 文件就能够.
  ? 利用方面方法生成的图形恐怕无法显示,也许品质不高,如何生成高水平的grub图片呢.
  利用文中后边笔者提供的ltospackl.tar.gz里面包车型客车grubtool.exe就能够在windows平台将jpg,bmp图生成为.xpm.gz格式的文本,直接交换/boot/grup下的公文就可以.
  3.什么去掉安装进程中的CentOS字样?
  在设置光盘里面有三个.buildstamp文件,叁个放在stage2.img中,几个位居initrd.img中,
  安装光盘运维时读取的是initrd.img中的那多少个.buildstamp文件,所以一旦把initrd.img文件改了就能够了。
  如何解压initr.dimg文件:
  2.6内核中的initrd.img采取cpio压缩,不再是2.4水源使用的ext2格式,不能利用mount -o loop 挂载。供给采纳gunzip解压缩,然后再使用
  利用cpio给img解包
  # cd /ltos/isolinux/
  # cp initrd.img /tmp/initrd.img.gz
  # cd /tmp
  # gunzip initrd.img.gz
  # mkdir initrd
  # mv initrd.img initrd
  # cd initrd
  # cpio -ivmd < initrd.img仍后修改.buildstamp文件,将CentOS改为LTOS就可以.
  如何创设initrd.img文件:
  #如若当前目录位于计划好的initrd文件系统的根目录下
  # find . | cpio -c -o > ../initrd.img
  # gzip ../initrd.img
  # mv initrd.img.gz initrd.img
  # cp initrd.img /ltos/isolinux/仍后将initrd.img复制到/ltos/isolinux/
  4. 如何替换安装今后的grub ?
  在安装光盘里的ks.cfg文件里写好替换splash.xpm.gz文件就可以.
  5. 如何去掉运营进程中的"CentOS release 5 (Final)"
  在安装光盘里的ks.cfg文件里写好本子,直接替换/etc/redhat-release即可.
  三.打包生成ISO文件公布
  # cd /ltos
  # declare -x discinfo=`head -1 .discinfo`
  # createrepo -u "media://$discinfo" -g repodata/comps.xml .生成ISO文件
  #mkisofs -R -J -T -r -l -d -allow-multidot -allow-leading-dots -no-bak -o /tmp/ltos-0.1-i386.iso
  -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .Md5
  /usr/lib/anaconda-runtime/implantisomd5 /tmp/ltos-0.1-i386.iso

办事类别:CentOS

  四.安装光盘效果演示图
  运维安装光盘

1.复制原LiveCD的内容:

 图片 2
  Grub界面

[root@localhost Downloads]# mkdir /mnt/livecd
[root@localhost Downloads]# mkdir /mnt/img
[root@localhost Downloads]# mount -t iso9660 -o loop install-amd64-minimal-20130711.iso /mnt/livecd/
mount: /dev/loop0 is write-protected, mounting read-only
[root@localhost Downloads]# cp -r /mnt/livecd/* /mnt/img

 图片 3
  系统登入分界面演示

2.切换成/mnt/img, 查看一下/mnt/img上边包车型客车剧情。

图片 4

本文由ca88发布,转载请注明来源

关键词: ca88网址