亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學習啦>學習電腦>操作系統(tǒng)>Linux教程>

      linux系統(tǒng)怎么制作

      時間: 春健736 分享

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

        linux系統(tǒng)制作方法

        1. CentOS定制

        1.1 光盤結(jié)構(gòu)介紹

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

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

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

        *.discinfo 文件是安裝價質(zhì)的識別信息

        *lemp.tar.gz 文件存放系統(tǒng)初始化及其相關(guān)程序安裝腳本.

        環(huán)境說明:

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

        VMware

        1.2 在VM安裝linux系統(tǒng)

        安裝anaconda repodata createrepo mkisofs ,關(guān)聯(lián)太多采用yum安裝//定制過程需要產(chǎn)生comps.xml文件以及生成iso

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

        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:”這樣的字符,需要刪除這些字符,否在后面執(zhí)行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 #定制時要復(fù)制RPM包的目錄

        mkdir /mnt/cdrom #加載光驅(qū)目錄

        mount -o loop /dev/cdrom /mnt/cdrom #將光盤內(nèi)容加載到/mnt/cdrom中

        cd /mnt/cdrom/ #復(fù)制光盤內(nèi)容到disk文件下,或者

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

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

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

        mkdir /disk/CentOS/ #創(chuàng)建RPM包存放目錄

        1.5 通過腳本復(fù)制系統(tǒng)安裝的包;

        #!/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系統(tǒng)怎么制作

      時間: 春健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

        將以上內(nèi)容保存為copyrpms.sh

        chmod 775 copyrpms.sh

        ./copyrpms.sh

        經(jīng)過一系列的復(fù)制就完成了你要定制的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

        樣例內(nèi)容如:

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

        到此以上定制任務(wù)已經(jīng)完成。

        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/ 目錄下產(chǎn)生的MyCentOS.iso 生成的ISO文件。

        自動硬盤分區(qū)

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

        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字段

        系統(tǒng)之外的rpm包,如mysql要放在%packages字段下,這個字段下可以填寫包名字(這個報名字指的是comps.xml文件中規(guī)定的包),也可以填寫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 在光盤中執(zhí)行腳本

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

        %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字段詳解

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

        這里有幾個關(guān)鍵點要注意。%post分兩個階段,這兩個階段的目錄結(jié)構(gòu)是不一樣的

        1) 兩個階段

        具體使用參數(shù)—nochroot來區(qū)分。我們規(guī)定,使用—nochroot階段為“階段一”,不使用的階段為“階段二”

        2) 光盤路徑

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

        3) 系統(tǒng)目錄路徑

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

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

        1.13 光盤啟動畫面修改

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

        n Gif轉(zhuǎn)lss命令:

        giftopnm< splash.gif | ppmtolss16 > splash.lss

        n 制作高質(zhì)量的16色gif圖片:

        先用photoshop打開任何一張圖片,然后在文件的下拉菜單里,保存的時候選擇“保存為WEB和設(shè)備使用格式“,再然后選擇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復(fù)制到/disk/isolinux/

      666636