• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦>學習電腦>操作系統>Linux教程>

    linux系統怎么制作

    時間: 春健736 分享

      Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基于Linux內核,并且使用GNU 工程各種工具和數據庫的操作系統。那么你知道linux系統怎么制作嗎?小編帶來了linux系統制作的具體操作過程,下面大家跟著學習啦小編一起來學習一下吧。

      linux系統制作方法

      1. CentOS定制

      1.1 光盤結構介紹

      *isolinux 目錄存放光盤啟動時的安裝界面信息

      *images 目錄包括了必要的啟動映像文件

      *CentOS 目錄存放安裝軟件包及信息

      *.discinfo 文件是安裝價質的識別信息

      *lemp.tar.gz 文件存放系統初始化及其相關程序安裝腳本.

      環境說明:

      CentOS-5.5-i386-bin-DVD.iso.

      VMware

      1.2 在VM安裝linux系統

      安裝anaconda repodata createrepo mkisofs ,關聯太多采用yum安裝//定制過程需要產生comps.xml文件以及生成iso

      yum -y install anaconda repodata createrepo mkisofs#安裝制作發行版所需的基本軟件包

      yum -y install anaconda-runtime createrepo yum-utils anacondaanaconda-help busybox-anaconda mkisofs

      1.3 生成packages.list

      生成packages.list 所安裝的RPM包文件清單(由于install.log文件在root目錄,所以該操作在root目錄進行)

      cat install.log | grep Installing | sed 's/Installing //g' > /root/packages.list #生成后,需要仔細看該文件,一般會在某些文件開始部分如“1:”這樣的字符,需要刪除這些字符,否在后面執行copy動作會報錯,注意引項為英文版Shell

      cat install.log | grep 安裝 | sed 's/安裝 //g' > /root/packages.list #同上,中文版Shell

      刪除1:的命令:

      sed 's/[0-9]\{1,\}://g' packages.list > packagesnew.list

      1.4 建立定制Centos的源目錄

      mkdir /disk #定制時要復制RPM包的目錄

      mkdir /mnt/cdrom #加載光驅目錄

      mount -o loop /dev/cdrom /mnt/cdrom #將光盤內容加載到/mnt/cdrom中

      cd /mnt/cdrom/ #復制光盤內容到disk文件下,或者

      tar -cf - . | ( cd /disk ; tar -xvpf - )

      不能使用普通的復制,因為普通的復制不能復制隱藏文件

      rm -rf /disk/CentOS/ #先刪除所有RPM包

      mkdir /disk/CentOS/ #創建RPM包存放目錄

      1.5 通過腳本復制系統安裝的包;

      #!/bin/bash

      DEBUG=0

      DVD_CD=/disk/CentOS

      ALL_RPMS_DIR=/mnt/cdrom/CentOS/

      DVD_RPMS_DIR=$DVD_CD

      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 class="main">

    linux系統怎么制作

    時間: 春健736 分享

      version=`echo $line | awk '{print }' | 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* $DVD_RPMS_DIR/"

      cp $ALL_RPMS_DIR/$name$version* $DVD_RPMS_DIR/

      # in case the copy failed

      if [ $? -ne 0 ] ; then

      echo "cp $ALL_RPMS_DIR/$name$version* "

      cp $ALL_RPMS_DIR/$name* $DVD_RPMS_DIR/

      fi

      fi

      i=`expr $i + 1`

      done

      將以上內容保存為copyrpms.sh

      chmod 775 copyrpms.sh

      ./copyrpms.sh

      經過一系列的復制就完成了你要定制的RPM包(在/disk/CentOS/目錄下);

      1.6 檢查包的依賴性

      # mkdir /tmp/testdb

      # rpm --initdb --dbpath /tmp/testdb

      # rpm --test --dbpath /tmp/testdb -Uvh *.rpm

      1.7 定制安裝控制文件ks.cfg

      一般方便可以直接由root下面的anaconda-ks.cfg修改

      cp anaconda-ks.cfg /disk/ks.cfg

      樣例內容如:

      # Kickstart file automatically generated by anaconda.

      install

      cdrom

      lang en_US.UTF-8

      keyboard us

      network --device eth0 --bootproto dhcp

      firewall --disabled

      authconfig --enableshadow --enablemd5

      selinux --disabled

      timezone --utc Asia/Shanghai

      bootloader --location=mbr --driveorder=sda

      # 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 --drives=sda

      #part /boot --fstype ext3 --size=100 --ondisk=sda

      #part pv.6 --size=0 --grow --ondisk=sda

      #volgroup VolGroup00 --pesize=32768 pv.6

      #logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow

      #logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=4032

      %packages

      @mysql

      @core

      @base

      @network-server

      @web-server

      %post

      echo "HOSTNAME=icesoul.local" >> /etc/sysconfig/network

      echo "# Do not remove the following line, or various programs" > /etc/hosts

      echo "# that require network functionality will fail." >> /etc/hosts

      echo "127.0.0.1 localhost" >> /etc/hosts

      echo "127.0.0.1 icesoul.local" >> /etc/hosts

      eject

      reboot

      1.8 修改isolinux.cfg文件

      修改isolinux.cfg文件// 將/disk/isolinux/目錄下的isolinux.cfg文件第一行default linux修改成default linux ks=cdrom:/ks.cfg

      原文:

      default linux ks=cdrom:/ks.cfg

      prompt 1

      timeout 60

      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 ks

      kernel vmlinuz

      append ks initrd=initrd.img

      label local

      localboot 1

      label memtest86

      kernel memtest

      append –

      簡化后:(默認字符模式啟動)

      default text ks=cdrom:/ks.cfg

      label text

      kernel vmlinuz

      append initrd=initrd.img text

      1.9 生成comps.xml

      cd /disk/

      createrepo -g repodata/comps.xml /disk/

      到此以上定制任務已經完成。

      1.10 制作IOS文件

      cd /disk/

      mkisofs -o MyCentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /disk/

      mkisofs -o /mnt/hgfs/mycentos/MyCentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /disk/

      /disk/ 目錄下產生的MyCentOS.iso 生成的ISO文件。

      自動硬盤分區

      自動硬盤分區,分區策略是:30G根目錄、1Gswap分區、其余為raid分區。

      clearpart --linux

      part / --fstype ext3 --size=30720

      part swap --size=1024

      part raid.3 --size=100 --grow

      1.11 Rpm包安裝

      光盤rpm包的安裝需要三個步驟:

      u 1)拷貝rpm包到Centos目錄下

      u 2)重新生成comps.xml文件

      u 3)配置ks.cfg文件的%packages字段

      系統之外的rpm包,如mysql要放在%packages字段下,這個字段下可以填寫包名字(這個報名字指的是comps.xml文件中規定的包),也可以填寫rpm包。如:

      %packages

      @core

      antlr

      ccid

      cdk

      cdk-devel

      cpp

      drbd

      e2fsprogs-devel

      fipscheck-devel

      fonts-ISO8859-2-75dpi

      gcc

      gcc-c++

      giflib

      gjdoc

      glib2-devel

      glibc-devel

      glibc-headers

      heartbeat

      heartbeat-pils

      heartbeat-stonith

      java

      java

      jpackage-utils

      kernel-headers

      keyutils-libs-devel

      kmod-drbd

      krb5-devel

      libgcj

      libgomp

      libselinux-devel

      libsepol-devel

      libstdc++-devel

      libXmu

      libXt

      libXtst

      lm_sensors

      lua

      lua-devel

      make

      mx

      mysql

      MySQL-python

      mysql-server

      nc

      ncurses-devel

      net-snmp

      net-snmp-libs

      ntp

      openssl-devel

      pcsc-lite

      pcsc-lite-libs

      perl-Compress-Zlib

      perl-DBD-MySQL

      perl-DBI

      perl-HTML-Parser

      perl-HTML-Tagset

      perl-libwww-perl

      perl-URI

      perl-XML-Parser

      pkgconfig

      PyXML

      rdesktop

      rsyslog

      telnet

      telnet-server

      vnc-server

      vsftpd

      xinetd

      xorg-x11-fonts-base

      xorg-x11-xauth

      zip

      zlib-devel

      1.12 在光盤中執行腳本

      在光盤中執行腳本,是通過將腳本放在%post字段中來執行的。具體如下:

      %post --nochroot

      #!/bin/sh

      # Mount CDROM

      mkdir -p /mnt/cdrom

      mkdir /mnt/sysimage/tempdir

      mount -t iso9660 /tmp/cdrom /mnt/cdrom

      cp -r /mnt/cdrom/cmd.sh /mnt/sysimage/tempdir

      # Unmount CDROM

      umount /mnt/cdrom

      %post --log=/root/my.log

      sh cmd.sh

      u %post字段詳解

      參數%post代表光盤安裝后所要做的工作。

      這里有幾個關鍵點要注意。%post分兩個階段,這兩個階段的目錄結構是不一樣的

      1) 兩個階段

      具體使用參數—nochroot來區分。我們規定,使用—nochroot階段為“階段一”,不使用的階段為“階段二”

      2) 光盤路徑

      在階段一,光盤路徑是/tmp/cdrom, 階段二光盤路徑有待確定,好像就沒有光盤了。

      3) 系統目錄路徑

      階段一,根目錄不是平常的linux路徑,根目錄的路徑是/mnt/sysimage/

      階段二,就是我們熟悉的linux路徑了,根目錄的路徑是/

      1.13 光盤啟動畫面修改

      光盤啟動文件在目錄isolinux下。其中splash.lss是啟動圖片,lss這是一種圖片格式,是一種很怪異的圖片格式。它限制圖片使用16種顏色,可以通過gif圖片轉化而來。

      n Gif轉lss命令:

      giftopnm< splash.gif | ppmtolss16 > splash.lss

      n 制作高質量的16色gif圖片:

      先用photoshop打開任何一張圖片,然后在文件的下拉菜單里,保存的時候選擇“保存為WEB和設備使用格式“,再然后選擇gif再選擇16色保存就OK

      n 圖片格式:

      大小640*300, 72像素,16色

      1.14 從硬盤啟動

      在isolinux/isolinux.cfg中增加:

      label h

      localboot 0x80

      意思是鍵入h,從硬盤啟動

      1.15 更改光盤安裝過程中的名字

      # cd /disk/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

      #rm –f initrd.img

      然后修改.buildstamp文件,將CentOS改為自定義名字即可.

      制作initrd.img文件:

      # find . | cpio -c -o >../initrd.img

      # gzip ../initrd.img

      # cp initrd.img /ltos/isolinux/

      然后將initrd.img復制到/disk/isolinux/

    666636 主站蜘蛛池模板: 精品久久久无码中文字幕| 亚洲欧洲另类春色校园网站| 亚洲免费观看视频| 一本大道一卡二大卡三卡免费| www.波多野| 阿娇被躁120分钟视频| 欧美福利一区二区三区| 捏揉舔水插按摩师| 国产真实乱了全集mp4| 人妻免费一区二区三区最新| 中文字幕视频不卡| 国模私拍福利一区二区| 深夜A级毛片视频免费| 李老汉在船上大战雨婷| 成人性生交视频免费观看| 在线观看噜噜噜私人影院| 可以免费看黄的网站| 久久精品动漫一区二区三区| 2022国产麻豆剧果冻传媒入口| 青青青青青草原| 欧美在线看片a免费观看| 日产欧产va高清| 国产成人免费在线| 亚洲欧美卡通另类| 丰满少妇弄高潮了www| 欧美另类xxx| 直接观看黄网站免费视频| 无码中文字幕av免费放| 国产成人久久精品一区二区三区| 免费人成视网站在线观看不卡| 乱爱性全过程免费视频| 5566电影成年私人网站| 特级黄色毛片在放| 性xxxxbbbb| 午夜男女爽爽影院网站| 久久久久久国产精品美女| 黑人大长吊大战中国人妻| 欧美乱子伦一区二区三区| 国产精品爆乳奶水无码视频| 国产一区日韩二区欧美三区| 久久精品丝袜高跟鞋|