使用群暉作mineportalbox(3):在阿里雲上單盤安裝群暉skynas


本文關鍵字:將群暉安裝在阿里雲主機上,skynas系統盤和數據盤同盤。mineportal3硬件選型,webpe,提取群暉webpe,使用webpe代替diskbios

在前面我們講到省事直接使用白群暉的方式,和提到一些需要hacker的地方,有些時候,正規一成不變的方式和硬件的方式有時的確是難於忍受的。從本篇開始我們探究一些群暉的奇特面,比如將其安裝在雲主機上的方式。比如阿里雲。

阿里雲上的群暉官方發布了一個skynas,我們知道群暉是靠賣軟件賣硬件的,那么阿里雲當硬件的情況下,它只能對鏡像收費了,阿里雲上的skynas是收費的,且套件支持不完全(比如非常適合當php虛擬主機管理器的webstation都沒有。),且正常使用除系統盤外還需要至少一個數據盤.其里面使用的引導技術,其實跟其它群暉是一樣的(白群暉硬件引導器是集成到機器ROM上的uboot,黑群則是U盤上的xpenboot之類的東西)。這種利用引導器來安裝恢復系統live linuxpe,平時自身卻是個dsm引導器(它有二部分,如果/dev/sda5不能引導,它會自動安裝install/upgrade,因為集成好多SRS驅動所以通用性很強)的思路,就是前面我們提到的DISKBIOS的效用之一(這實際上也是我們前面追求的類蘋果在線恢復系統式的PE),我們將其稱為web裝機系統,webpe(群暉叫法webassistant),其一般思路就是,

在引導器下,系統dsm實際上是一個完整的linux發行版升級包。是系統也是數據,引導器會划分第一塊硬盤空間,將DSM掛載到根下。這里有一段復雜的啟動腳本完成掛載和升級轉接(直接以tar為系統鏡像進行恢復或全盤增量式升級)。分啟動和安裝,第一次安裝系統和以后升級系統甚至引導都是同一個過程。。它僅需要這個第一塊硬盤為系統盤和數據盤安裝系統(對的,這里的數據盤說法上嚴格來說是volume1,白群和黑群的引導器可以獨立於這塊硬盤外置USB等方式啟動,直接在onthefly環境下操作這塊盤,而aliyun ecs環境特殊,引導器要事先集成安裝在40G系統盤下,我們得不到一個類外置啟動U盤之類的環境,引導器不能對這塊系統盤直接作分區操作完成DSM安裝/升級,所以一切都是事先集成好的,引導器內部的邏輯不同)。

失敗的嘗試,我曾想通過安裝virtio類grub4dos仿真光盤的方式加載黑群引導器/skynas引導器(將其加載到純內存),企業制造類黑白群暉的裝機環境,但是不行,問題有2:
1,發現不了硬盤,黑群的xpenboot能認virtio盤,然而其將阿里雲盤讀成vda而非sda,引導器根本發現不了磁盤。
2,我將提取的skynas引導器做成ISO,它有認盤然而在操作硬盤分區時出現35錯誤,同樣失敗,意料之中,因為winvblk這樣的東西只對windows鏡像有效,是它們的驅動而非linux認識的。

如何提取skynas引導器:從這里下載它的系統http://update.synology.com/autoupdate/genRSS.php,搜索alidsm,發現DSM_SkyNAS_15254.pat並下載,7z打開,我們需要的二個引導文件是zImage和rd.gz,在ubuntu 14.04 下創建grub2可引導的iso,准備grub2的文件,將這幾個文件和boot/grub文件夾放進一個文件夾假設是test,然入這里,將其做成黑群式的iso:grub-mkrescue -o test.iso test
如出現:grub-mkrescue: warning: Your xorriso doesn’t support `–grub2-boot-info’. Some features are disabled. Please use xorriso 1.2.9 or later..
安裝apt-get install xorriso

好了,因為重新編譯黑群暉引導器和調整其發現硬盤的邏輯目前還沒有嘗試,下面來探究正確安裝skynas的方式:

警告,以下過程為了學習起見,不要用於將其用於其它目的!!

准備測試環境

我們先准備測試環境(注意這個接下來的linuxpe並不是webpe,我們用webpe指syno live bootstraper),為什么要准備這個測試輔助環境,因為webpe的ssh是進不去的我們不能直接在里面工作,我們采用從《使用virtiope安裝iso》《在硬盤上安裝tinycolinux as linxpe》中的方式在雲主機上裝上這個環境。並為這個linuxpe准備openssh和lvm支持,將其打造成實用的linuxpe版本。主要就是采用《為tinycolinux創建應用》的方式,在live tinycolinux的microcore.gz中加入這幾個3.x的應用包gcc_libs,tcz,openssl-0.9.8.tcz,openssh.tcz,/ ncurses.tcz,readline.tcz,udev-lib.tcz,libdevmapper.tcz,raid-dm-2.6.33.3-tinycore.tcz,liblvm2.tcz,lvm2.tcz。並把shadow處理好,openssh運行一次配置文件也集成到這個PE中去。

好了,最終啟動這個live linxpe,我們可以通過ssh進入並作lvm分區操作,如果將其做成上面的可啟動ISO,這樣就不再需要《利用virtiope加colinux noimage完成雲主機linux的動態無損分區》這樣的課題了,而我們的目的要稍微輕量一點,我們不打算利用這個PE創LVM分區,而只是復原啟動器能用的磁盤結構:

現在上傳2個skynas啟動器文件(而並非與grub2一起做成ISO)並加入skynas啟動器的啟動,進入linuxpe,其啟動菜單與tinycolinux livepe類似,加一條進去到/boot/grub/grub.cfg,類似

menuentry “skynas bootstraper webpe” –unrestricted {
set root=(hd0,msdos1)
set prefix=(hd0,msdos1)/boot/grub
linux /boot/zImage ro root=/dev/sda5 (硬性指定從sda5啟動)
initrd /boot/rd.gz
boot
}

啟動它,訪問雲主機ip:5000出來web assitant,我們發現它依然不能對內置第一塊硬盤進行格式化,這是因為啟動器只認集成了分區布局的情況(如果認到,它將不嘗試分區),除非,那真是一塊在啟動器眼中“干凈”的內置硬盤(很明顯地,啟動器也在這里,所以它不算干凈)。

備份這二個文件和boot/grub/grub.cfg到其它區。

准備分區布局

然后,准備分區布局,進入linuxpe,fdisk /dev/vda,先鍵入u,由柱面計算方式換成sector,刪除所有現有結構,新建下列布局(不必要求大小一一對應甚至不用格式化,其實布局對了webpe就能繼續)

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 34815 32768 16M 83 Linux
/dev/sda2 34816 239615 204800 100M 83 Linux
/dev/sda3 239616 20964824 20725209 9.9G 5 Extended
/dev/sda5 239679 9676862 9437184 4.5G 83 Linux (擴展分區第一個分區號永遠都是擴展分區號+1之后的計數得來)
/dev/sda6 9676926 19114109 9437184 4.5G 82 Linux swap / Solaris

除了把備份的webpe和啟動邏輯應用到第一分區sda1,其它分區甚至不需要格式化,如上所講,正常安裝選擇在線更新(你也可以上傳那個DSM_SkyNAS_15254.pat),你就會發現安裝過程就會繼續,大小也不一定一定相同,布局相同就會繼續了。完工!

你可以利用lvm把剩余空間用起來。

數據盤的問題

進入dsm,你會發現,webstation沒有,套件很有限,而且最最關鍵的一個問題,數據盤所在的volume1,除非另加一個阿里雲盤,在系統盤上,不管你在上面的布局如何新增sda7,etc..,都沒有在這里被識別為volume1.

啟動過程中可以看到一條:volumemamnager.cpp no target disks to be creTED AS VOLUMES AT Vdsm bootup。這尚不能確定除了內核定制,在腳本層就能改變判斷volume1的邏輯,如果能做到,那么就能成功。
skynas的安裝邏輯主要在,rd.gz\rd\usr\syno\sbin\installer.sh,upgrade.sh,還有/etc/synogrinst.sh,rc.volume等文件中,里面有一條Create data=no的判斷。

也可以參照黑群在同一個系統分區上可創建volume1的方式來修改。只是網上有為kernel改virtio為sda的破解,有重新打包pat的破解。定制xpenboot的源碼卻找不到。

以后解決。

——————

接下來的文章我們要為這個skynas准備一些重要的套件了


(此處不設回復,掃碼到微信參與留言,或直接點擊到原文)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM