自製簡單的小型Linux

2021-09-21 02:52:39 字數 2145 閱讀 6172

實驗環境:vmware workstation pro 14(試用版)

系統平台:

centos release 6.9 (final)       核心  2.6.32-696.el6.x86_64

步驟:

1.分割槽並建立檔案系統

# fdisk /dev/sdb

分兩個必要的分割槽

/dev/sdb1對應/boot

/dev/sdb2對應根 /

2.格式化檔案系統

# mkfs.ext4 /dev/sdb1

# mkfs.ext4 /dev/sdb2

3.掛載自製linux的 /boot

# mkdir /mnt/boot 子目錄必須為boot

# mount /dev/sdb1 /mnt/boot

4.安裝grub

#grub-install --root-directory=/mnt /dev/sdb

#hexdump -c -n 512 /dev/sdb  看到sdb磁碟已經寫入了mbr引導資訊

5.複製核心心和initramfs檔案

#cp /boot/vmlinuz-2.6.32-696.el6.x86_64 /mnt/boot/vmlinuz

#cp /boot/initramfs-2.6.32-696.el6.x86_64.img /mnt/boot/initramfs.img

6. 建立grub.conf

# cat > /mnt/boot/grub/grub.conf << eof

default=0

timeout=30

title hunk_linux

root (hd0,0)

kernel /vmlinuz ro root=/dev/sda2 selinux=0 init=/bin/bash

initrd /initramfs.img

eofroot=/dev/sda2是考慮到以後掛載到其他機器時,sda1是/boot,sda2是/

7.建立自製linux系統的根系統

#mkdir /mnt/rootfs

#mount /dev/sdb2 /mnt/rootfs/

#mkdir /mnt/rootfs/

8.把網絡卡驅動一併複製到自製linux系統的根系統

#modinfo e1000

filename:       /lib/modules/2.6.32-696.el6.x86_64/kernel/drivers/net/e1000/e1000.ko

#cp /lib/modules/2.6.32-696.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /mnt/rootfs/lib/

8.執行我寫的指令碼。(

找到第6條練習)把想要程式都執行 一次

9.複製剛才生成的程式檔案和lib到自製linux系統的根系統

10 . 可以切換至目標根進行測試命令

# chroot /mnt/sysroot

11.把磁碟掛載到乙個新建立的機器中進行測試

指令都沒有問題

網絡卡在使用insmod /lib/e1000.ko載入後,使用ifconfig配置ip,也是能正常使用。

最後:由於是使用/bin/bash替代了/sbin/init的功能,因此,這個系統僅僅是做為乙個簡單的小系統使用,用來加深理解相關知識,並且測試寫的指令碼是否正常使用。

如果有興趣,可以替換為/sbin/init,只是需要配置一些配置檔案。

自製的簡單進度條

年前公司上h5活動,有個進度條功能,設計稿是這樣的 這裡只分享思路和功能,也記錄一下 html部分 1 div class pro id pro 2 div class pro red id pro red div 3div 4 div class cishu 5 span class ci1 0次...

自製簡單計算器

好多次想學習c 但都是望而卻步。這次因為專業方向原因 數字影象處理 不得不走上學習c 的道路上。網上找了些c 的推薦書籍,入門的大多都是 c 程式語言 c primer c primer plus 這3本書都找來看,但是都沒有看完,都是看到型別部分就放棄了。網上推薦的看不了,就自個在圖書館尋尋覓覓,...

自製linux系統 LFS 資源

乙個很不錯的的lfs論談專區,對於新手非常有幫助,製作中出現的問題,可以搜搜前人走過的路 孫海勇的 手把手教你如何建立自己的linux系統 第二版 完全可以根據這個手冊製作出乙個成型的linux系統,在編譯所要原始碼時,需要輸入很多指令碼,可一定要仔細檢查輸入的指令碼,一步輸錯可將對後面編譯造無法挽...