製作最簡單的linux系統

2021-10-11 05:11:19 字數 1257 閱讀 4327

本文件在virtualbox5.1.30,和ubuntu14.04下製作的.目的是了解系統的啟動過程.

1. 新建乙個虛擬機器(名稱:linux,型別:linux,版本:ubuntu(64bit))

除了虛擬硬碟大小設定2g,其它選項預設.

2. 在乙個已經安裝好ubuntu的虛擬機器新增上述的虛擬硬碟.

先在安裝好的ubuntu上選擇設定->儲存->控制器:sata->新增虛擬硬碟.

找到步驟1建立的虛擬硬碟.

結果如圖:

3.啟動已安裝好的ubuntu.給虛擬硬碟分割槽.

如圖/dev/sdb就是步驟1的虛擬硬碟.

分割槽命令:sudo fdisk /dev/sdb

如圖,只分了乙個主分割槽:

4給虛擬硬碟安裝grub引導.

a.把/dev/sdb1格式化ext4檔案系統.如圖:

b.掛載/dev/sdb1到/mnt.

命令:sudo mount -t ext4 /dev/sdb1 /mnt/

c.安裝grub.

5.新增grub.cfg

最簡單的方法是拷貝ubuntu虛擬機器上的/boot/grub/grub.cfg到/mnt/boot/grub/,然後修改.

a.修改所有的uuid,用如圖的uuid(sdb1)替換原來的uuid(每個分割槽有唯一的uuid).

b.如圖修改147,165,182行.

6.拷貝vmlinux和ramdisk.

如圖命令:

7.自己寫乙個init程式,測試核心能否啟動.

**如圖:(檔名mian.c)

編譯命令:gcc -static main.c -o init,然後拷貝init到/mnt.

8.在/mnt下建立proc,sys,dev三個資料夾,/mnt內容如下:

9.啟動linux虛擬機器,如圖,說明核心和init都成功執行.

10.拷貝sh和ls命令程式和動態庫. (可以拷貝更多命令)

注意:ubuntu系統的bash無法在這裡當作init程序,sh實際是dash

a.先在/mnt下建立bin,lib/x86_64-linux-gnu,lib64資料夾.

b.sudo cp /bin/sh /bin/ls ./bin/

c.檢視sh,ls需要哪些動態庫,如下:

d.拷貝步驟c的動態庫到lib/x86_64-linux-gnu和lib64.

結果如圖:

11.啟動linux虛擬機器,啟動前修改grub.cfg的init=/bin/sh,或者啟動時修改.結果如下:

最簡單的軟體封面製作方法

在書上的軟體封面製作方法都是要操作工程 這裡提供乙個更簡潔的方式 原始碼詳見 http www.delphifans.com softview softview 1856.html procedure tformflash.timer1timer sender tobject begin formf...

最簡單的方式製作python詞云

先出乙個英文的詞云!首先準備一段英文生成txt文字 from wordcloud import wordcloud import matplotlib.pyplot as plt text open aaa.txt r read 可讀方式開啟txt,並讀取內容到text wordcloud word...

在Linux系統安裝Nodejs 最簡單步驟

英文 中文 通過 uname a 命令檢視到我的linux系統位數是64位 備註 x86 64表示64位系統,i686 i386表示32位系統 如圖 2 解壓上傳 解壓後的檔案我這邊將名字改為了nodejs,這個地方自己隨意,只要在建立軟連線的時候寫正確就可以 tar xvf node v6.10....