自定義linux系統

假如生活欺騙了你,不要悲傷不要心急,相信吧,快樂的日子終將來臨!–海子

自制linux?mini系統
借助linux系統創建mini版系統文件
制作步驟
a.載體,u盤或者硬盤
?vm創建虛擬硬盤后,免重啟硬盤識別命令:
這里創建的盤大小為20G?
# echo “- – -” > /sys/class/scsi_host/host2/scan??
lsblk
沒有顯示的話,只好reboot重啟??(⌒▽⌒?)。
b. 為mini硬盤創建分區 ;這里暫分兩個;引導區200m,另一個區用掉剩余1800M ,建分區可用parted 或 fdisk命令
#這里假若mini盤識別為sdb
fdisk /dev/sdb? ;創建分區 n ;主分區p,擴展分區e;分區編號(1-4);節點起始;分區大小 +….M
注:記得?w?保存!?。?/span>
c.創建分區文件系統,一般centos6用ext4格式,7用xfs格式。
命令mkfs.ext4 /dev/sdb1或 mkfs.xfs /dev/sdb1兩個分區都一并把文件系統創建好。blkid命令,查看UUID號是否生成。
d.部署mini盤的引導分區,并掛載分區
# mkdir -pv /mnt/{boot,rootfs}
# mount /dev/sdb1 /mnt/boot/
# mount /dev/sdb2 /mnt/rootfs/
# df? ? 查看一下
e.生成內核引導文件–grub
# grub-install –root-directory=/mnt/ /dev/sdb
f.為mini?系統boot目錄創建內核與鏡像文件
拷貝當前系統的/boot里內核與內核鏡像,到mini系統的/boot目錄
cp /boot/vmliuz-###.el#.x86_64??/boot/initramfs-###.el#.x86_64.img? /mnt/boot/
g.編寫引導配置文件?grub.conf
vim /mnt/boot/grub/grub.conf
1. default=0
??#等待時間
2. timeout=3
3. title nice job linux
???# 內核指定; root指定 ;第一啟動程序指定
4. kernel /vmlinuz root=/dev/sda2??init=/bin/bash??selinux=0
???# 內核鏡像指定
5.?initrd /initramfs.img
h.創建根下子目錄
? ? ? ? cd /mnt/rootfs
? ? ? ? mkdir -pv {proc,dev,lib,bin,sbin,home,root,etc/rc.d,usr/{lib,bin,sbin},var/{log,run,lock},tmp,mnt,sys}
i.定制需要用到的程序
? ? ? ? ?由于上述指定了/bin/bash?為第一啟動程序,所以bash程序必須拷貝過來。
? ? ? ? ? cp /bin/bash /mnt/bin/bash
? ? ? ? ? 網卡如需使用也拷貝一下:
? ? ? ? ? cp /lib/modules/`內核`/kernel/drivers/net/ethernet/ethernet.ko /mnt/rootfs/lib/
? ? ? ? ? ?這里再制作一個起到“選擇并復制”作用的這么一個腳本。方便其他程序包的復制。
? ? ? ? ? ?代碼如下:
? ? ? ? ? ?#蛇棒
while true ;do
read -p “please input order(eg:[ls|quit]):” ord
root=”/mnt/sysroot”
copycmd (){
seat=`which $ord`
dir=`dirname $seat`
????????if [ $? -eq 0 ];then
????????????????echo “$seat”
????????????????[ ! -d “$root$dir” ] && mkdir -pv “$root$dir”
????????????????cp -f “$seat” “$root$seat”
????????else
????????echo “Input error” ; continue
????????fi
}
copylib (){
????????ldd $(which $ord) |grep -oE “/.* ” |while read line ;do
???????????????local libdir=$root$(dirname $line)
???????????????if [ -e “$root$line” ];then
???????????????????????continue
???????????????elif??[ -d “$libdir” ];then
??????????????????????cp -v “$line” “$libdir”
???????????????else
??????????????????????mkdir -pv “$libdir”
??????????????????????cp -v “$line” “$libdir”
???????????????fi
???????????????done
}
case $ord in
q|quit)
???????echo??“Copy finished” ;exit 1
;;
*)
?????????copycmd;copylib
esac
done
j.關機,復制虛擬硬盤文件到指定文件夾,創建一個虛擬機,并裝載這個虛擬硬盤,啟動。。。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?—— ? ? ?end

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/93213

(3)
康歌康歌
上一篇 2018-03-26
下一篇 2018-03-26

相關推薦

欧美性久久久久