1. 程式人生 > 其它 >如何讓OpenwrtX86和win7雙系統共存在一塊硬碟

如何讓OpenwrtX86和win7雙系統共存在一塊硬碟

技術標籤:路由器openwrt軟體架構經驗分享其他linux網路

如何讓OpenwrtX86和win7雙系統共存在一塊硬碟

瞭解openwrtX86

使用openwrt 一段時間,都是的路由器上用,最近同學有需求,他探索出了X86電腦上的用法,也就是大家說的軟路由。在繼續下去以前,簡單說下,功能和目的。

平臺適用

X86,主要就是各種PC,筆記本,聽起來是上個時代的產品了,但是也相當普遍,在各種辦公學習網路中十分常見。openwrt是一個linux核心的,路由器產品,也就是嵌入系統。但是linux發源於X86,所以天生能跑在PC X86平臺吧。

另外為了只是用openwrt的部分功能,而不影響正常工作,可以讓X86的它,運行於某個虛擬機器裡,如VMBOXVMStation。還有hyper-v
但是本文的重點在於,單獨執行在一臺微型電腦,或者筆記本上。但是在需要 的時候可以切換回工作環境。

為啥這樣做?

節省一塊U盤的提升效能減少我丟失感危機的選擇
一般情況下,用某個IMG工具,balenaEtcherwin32diskimager可以把官網的openwrtx86安裝包全盤放入U盤或者硬碟。他們的大小在500M以下。 然後剩餘的空間需要謹慎分割槽,搞不好會破壞了引導。
怎麼辦,分割槽的時候不要破壞分割槽表。起碼不要讓載入程式覺得被破壞了。普通BIOS,MBR分割槽來說,主流的官網做法,是分成兩個區,一個是krenal.ext. 較小,存放grub的引導配置檔案,核心,vmlinuz 。另個root存放系統所需的程式檔案 。其實要驗證有沒有被破壞,或判定它們沒有破壞的前提在於,boot/grub/grub.cfg。這個檔案的內容保持正確識別。

WINDOWS和openwrt共存怎麼做到

1. 先來看下grub.cfg

  
@[email protected]
@[email protected]

set default="0"
set timeout="@[email protected]"
set root='(hd0,msdos1)'

menuentry "OpenWrt" {
	linux /boot/vmlinuz   root= PARTUUID=********-****--**----*---    @[email protected]
noinitrd } menuentry "OpenWrt (failsafe)" { linux /boot/vmlinuz failsafe=true @[email protected] noinitrd

1.set root=’(hd0,msdos1)’ 這個定義boot啟動的位置
2. root= PARTUUID=******-****–----*— 定義了root大分割槽的所在地
在克隆映象的時候MSDOS1,已經確定了,UUID已經寫好了。

2.那麼我們著手分割槽

,將原有硬碟,也就是WINDOWS的安裝盤,分出空餘的500M空間,針對IMG做到的U盤的大小來分第一個引導小分割槽,我的是16M。還有剩餘的大分割槽,我的是300M。手寫容量,型別主分割槽,格式任意。我用的各種PE盤帶著的diskgenu工具。可以調整大小,劃分磁碟。

3.克隆分割槽

diskgenu有個方式可以載入IMG檔案,但是不知道是不是起作用,我最後用的是U盤分割槽対刻。在某個工具選單。分別讓大小對應,一路克隆下去。

4.溝通兩個世界

好像新建的分割槽和U盤是openwrt才能識別的
這就像兩個世界,當我們進入windows系統,新生成的盤是不認的。另外,去所說的方式,可能目前只適用於MBR。若是工作在GPT模式下。可能要相應的借鑑修改。一切只為省一塊U盤。可有可無的選擇啊。呵呵了,可能還有效能提升。固態盤讀寫速度都高很多。
扯遠了,繼續說兩個世界。
1.在WINDOWS世界,安裝一個工具EasyBCD。或EasyUEFI。
我說前者,因為我用的MBR。在BCD,新建條目,作業系統選擇Linux/BSD.型別GRUB2. 其他預設,驅動器讓他自動定位載入吧。然後點下面的+。回去看引導選單。多了一條。這就是它了。重啟後可以選擇它,找到了新分割槽的boot目錄。然而一定會出現錯誤提示,檔案格式不對,unkonwn。這時候可以選擇按c,進入命令列,ls。列出所以磁碟。(hd0,msdos1)(hd0,msdos2)(hd0,msdos3)
然後不出意外,ls (hd0,msdos2)會顯示剛才建立的分割槽,大小,標籤 kernal。型別EXT。
這時如果 set root= hd0,msdos2.
normal. 運氣好,回到選擇選單,回車,可能會看到載入成功的除錯程式碼。然而好運不長,往裡長征只走完了第一步。因為主目錄,放著大量檔案的大分割槽,還沒找,這時如果找到了vmlinz。它就放在boot裡。你的操作告訴了它的分割槽。那麼接下來呢。
2.接下來,就要修改前面提到的grub.cfg了。這是openwrt啟動U盤的登場時間
[email protected]#
開機啟動顯示輸入框。輸入命令***blkid***。
列出了,副本他本尊的UUID資訊。另外我們也知道了副本在windows心目中新的位置 msdos2,假設是2.要靠1來驗證來著。接下來重要時刻來臨。幾下副本小分割槽的掛載點 mnt/sdb2

[email protected] #blkid


[email protected] #cat  /mnt/sdb2/boot/grub/grub.cfg

假如出現副本的的內容顯示,那就找對地方了,你會驚喜一下。但是關鍵還在於 blkid給出的UUID。還有msdox(n)
下面

vi    /mnt/sdb2/boot/grub/grub.cfg

[email protected] #blkid


[email protected] #cat  /mnt/sdb2/boot/grub/grub.cfg

到這裡也許可以依託於某個web視窗,還好操作些。比如假如你改了/etc/config/network.裡面的IP在這裡的操作也不難。可以在其他同網路的電腦http://IP。選出韌體所帶的TTY。在系統選單裡。以此執行上面的命令也行,不過還要執行關機重啟,換啟動項的事情。這樣也是不錯的。
儲存退出後。來到了硬碟啟動選擇頁面,如果不出差錯,選擇NeoSmart Linux。隨著它咔咔渣渣作響的除錯輸出,一路執行到底。你多按幾次回車。它可以響應請求了。。這種情況的不足是,你還有找到另一臺電腦或者手機,來使用它的服務。不過,你有自己的備選。可以找到WINDOWS。還節省,U盤,提升了效能。重要的學到了知識。雖然是無用的知識吧。

[email protected] #
[email protected] #

那麼它能用來做什麼。

旁路由模式


我還沒時間弄成功它呢,因為這種方式真是糟心,常常造成卡死,無響應。相關的問題你們自己解決吧。它可以做代理模式,這種模式是沒有問題的。 用的時候開,不用了也挺安靜的。具體見SSPlus+
代理怎麼用,就是SOCK5啊。在自己網路上,其他裝置能用的。代理倒是一次搞定,不過沒什麼意思了。
最好做個雙網絡卡,另外加個USB。因為三天以後我人旁路由模式都是半死不活的狀態。

結束

我使用了很多文章,地址都存在手機上,我把open的img放了一份在下載裡,以後自己能用。去把借鑑的找出幾個放在這裡。有需要的拿去。

openwrt IMG
[1]: https://t.me/s/openwrt_By_lenyu
GRUB
[2]: https://blog.csdn.net/u012986684/article/details/79508694
關於openw檔案系統的提示。文風真感人啊,也是啟發較大人一篇
[3]: https://www.sgtfz.cn/2019/08/1846.html
為了學習BCD,好像被這人帶偏了,最終也沒用成功。,GRUB2,自動搜尋好像管用。
[4]: https://blog.csdn.net/www_helloworld_com/article/details/84672165