本文件在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....