Linux的發布
??????? 有時候希望將定制好的Linux移植到其他的機器上使用,所以我們將定制好的Linux制作
成安裝光盤的形式,可以方便在其他機器上安裝。
?????為此我們要先制作一個引導系統,由引導系統引導我們進行一步步的安裝。其中引導系統
有grub、initramfs、內核三部分組成,相當于一個微型linux,下面我們詳細介紹制作過程。
查看linux,必要的準備
1、安裝cdrtools-2.01
??? 安裝這個包是為了使用其包含的命令mkisofs,這個是建立光盤鏡像的工具。該
包的編譯安裝命令為:
??????????tar xvf cdrtools-2.01.tar.bz2
????????? cd cdrtools-2.01
UNIX/LINUX???????????patch -Np1 -i ../cdrtools-2.01-mkisofs_iconv-1.patch
????????? patch -Np1 -i ../cdrtools-2.01-ascii-2.patch
????????? make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root?
????????? make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root install &&
????????? install -v -m755 -d /usr/share/doc/cdrtools-2.01 &&
????????? install -v -m644 README* ABOUT doc/*.ps??/usr/share/doc/cdrtools-2.01
jquery form。2、安裝cpio
???? 用來生成initramfs.igz。編譯安裝命令為:
????? patch -Np1 -i ../cpio-2.9-gcc43_inline-1.patch &&
????? ./configure CPIO_MT_PROG=mt \
??????????? --prefix=/usr \
??????????? --bindir=/bin \
??????????? --libexecdir=/tmp \
??????????? --with-rmt=/usr/sbin/rmt &&
????? make
安裝腳本
國內linux發行版、????安裝腳本的內容為:
1、分區硬盤并格式化
2、解壓縮定制的linux系統壓縮包
3、調整grub
/install/INSTALL文件:
#!/bin/sh
#create partitions
fdisk /dev/sda << "EOF"
n
p
1
1
+512M
n
p
2
linux版、?
w
q
EOF
#setup swap
mkswap /dev/sda1
swapon /dev/sda1
#prepare partition
mkfs -t ext3 /dev/sda2
mount /dev/sda2 $LFS
#extract the lfs
cd $LFS
tar xvf /install/lfs.tar.gz
#setup grub
mount --bind /dev $LFS/dev
chroot $LFS
grub
grub> root (hd0, 1)
grub> setup (hd0)
grub> quit
exit
umount $LFS/dev
#end
cd /
umount $LFS
reboot
?
Initramfs構建
Initramfs簡介
??????? 在2.6版本的linux內核中,都包含一個壓縮過的cpio格式的打包文件。當內核啟
docker發布,動時,會從這個打包文件中導出文件到內核的rootfs文件系統,然后內核檢查rootfs
中是否包含有init文件,如果有則執行它,作為PID為1的第一個進程。這個init進程負
責啟動系統后續的工作,包括定位、掛載“真正的”根文件系統設備(如果有的話)。
如果內核沒有在rootfs中找到init文件,則內核會按以前版本的方式定位、掛載根分區,
然后執行/sbin/init程序完成系統的后續初始化工作。這個壓縮過的cpio格式的打包文件
就是initramfs。
linux 發行版。Initramfs的文件和目錄
????? 1、確定需要的可執行文件,如:ls, cat, tar, fdisk, mount等常用命令
的可執行文件,并查找這些可執行文件所依賴的庫文件,將它們復制到initramfs對應
的目錄中。可以在網上找一些抓庫腳本程序,根據實際情況稍做修改,運行腳本即可自動
完成上述功能。也可參考本例的腳步文件。
??? 2、init文件
linux官方??????????? #!/bin/sh
?????????? /etc/rc.d/init.d/rc sysinit
?????????? /bin/bash --rcfile /etc/profile
????? 3、?rc 啟動腳本
? ? ? ? ? 使用如下命令將啟動腳本復制到initramfs下對應的目錄:
?????????? cp /etc/udev initramfs/etc/ -a
???????????mkdir -p initramfs/etc/rc.d/init.d
?????????? cp -a /etc/rc.d/init.d/{functions,mountfs,mountkernfs,rc,udev,udev_retry} initramfs/etc/rc.d/init.d/
定制linux圖形界面。?????????? mkdir -p initramfs/etc/rc.d/rcsysinit.d
cp -a?/etc/rc.d/rcsysinit.d/{S00mountkernfs,S10udev,S40mountfs,S50udev_retry}???initramfs/etc/rc.d/rcsysinit.d/?
? ? ? ? ? ?mkdir -p initramfs/etc/sysconfig
??????????? cp -a /etc/sysconfig/rc initramfs/etc/sysconfig/rc
?????? 4、一些配置文件和目錄?
?????? 創建掛載目錄/proc, /sys, /media/cdrom;?
定制自己linux系統、?????? 復制udev 相關的文件: cp -a /lib/udev/devices $WORK/tmpfs/lib/udev/,并讓udev 自動創建/dev/cdrom 鏈接;
?????? /etc/fstab文件:
/dev/root???? /??????????????????? ext2????? defaults??????? 0???? 0
/dev/cdrom? /media/cdrom? iso9660? defaults??????? 0???? 0
proc?????????? /proc?????????????? proc????? defaults??????? 0???? 0
sysfs?????????/sys???????????????? sysfs???? defaults??????? 0???? 0
devpts?????? /dev/pts?????????? devpts?? defaults??????? 0???? 0
?
???????/etc/profile文件:
export PATH=/bin:/usr/bin:/sbin:/usr/sbin
export TERM=xterm
export HISTSIZE=1000
export PS1="\w# "
alias ls="ls --color"
alias ll="ls -lh"
alias la="ll -a"
centos部署web項目。?
生成Initramfs
??? find . | cpio -H newc -o | gzip > $WORK/iso/boot/initramfs.igz
grub啟動
?
/boot/grub/menu.lst 文件如下:
linux版是什么意思,default 0
timeout 5
color green/black light-green/black
title bootcd
? root(cd)
? kernel /boot/kernel
? initrd /boot/initramfs.igz
?
root (cd)表示從光盤啟動;
kernel /boot/kernel 表示kernel文件的位置;
initrd? /boot/initramfs.igz 表示initramfs.igz文件的位置。
?
如何定制自己的linux。結束
生成ISO文件
mkisofs??????????????????????? \
? -R?????????????????????????? \
? -b boot/grub/stage2_eltorito \
? -no-emul-boot??????????????? \
? -boot-load-size 4??????????? \
? -boot-info-table???????????? \
? -o $WORK/bootcd.iso????????? \
? $WORK/iso
?
?
測試
LINUX教程、gwlinux1.0_setup.iso 在vmware6.5上測試安裝通過。安裝方法簡單描述如下:
1、? 在vmware6.5中安裝時默認硬盤驅動為LSI logic,請設置為BUS logic;?
2、? 該版本linux的網絡暫時沒有配置,請設置為不使用網絡連接;
3、? 使用iso引導進入安裝界面
4、? 命令提示符中輸入:/install/INSTALL,執行完后如果不能自動重啟,手動重啟即可。
5、? 重啟進入gwlinux1.0
linux不裝圖形界面?Gwlinux1.0_setupk可在以下硬件平臺上正常安裝:e5000+g31+WD160G硬盤+dvd-rom。
?
但仍存在一些遺留問題:
1、? 啟動盤啟動時會提示cdrom不存在,這時,需要先輸入:mount /dev/sr0 /media/cdrom,再按步驟安裝;
2、? 安裝結束時reboot命令不起作用,要手動重啟;
3、? 硬盤分區方式固定,缺乏靈活性;
docker部署前端項目?4、? 其他硬件平臺還未驗證,對某些硬件可能不支持。
?
?下載:linux的定制和發布.zip
? ? ??
?