查看linux,linux的定制和發布(二)

 2023-10-06 阅读 27 评论 0

摘要:Linux的發布 ??????? 有時候希望將定制好的Linux移植到其他的機器上使用,所以我們將定制好的Linux制作 成安裝光盤的形式,可以方便在其他機器上安裝。 ?????為此我們要先制作一個引導系統,由引導系統引導我們進行一步步的安裝。其中引導系統 有grub、ini

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

? ? ??

?

轉載于:https://www.cnblogs.com/wenjingu/p/4126567.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/120034.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息