您好,登錄后才能下訂單哦!
如何利用virtiope+colinux實現linux系統盤動態無損多分區,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
利用colinx+virtio winpe定制aliyun多分區linux系統盤,在winpe xp winpe中運行colinux,在windows pe下真正操作linux分區,利用colinux作單硬盤分區擴容無損分區, bootice安裝grub2-00 到硬盤,云主機越獄裝自定義鏡像
這樣借助virtiope和一系統一數據區的雙分區設置可以恢復一個全新的系統。我們將在裝機領域,探索一種“在winpe下自由操作linux分區”的目標與可能。----- 文章最后,探索為單硬盤單分區下的云主機linux分裂為二個分區,打造一個類PC和手機recovery的可恢復rom機制,只要這樣,在裝機和實用階段,都能完成某種“共盤,實用的windows,linux融合方案”,那文提到的設想才能基本變得“像那么回事”,也算有技術參考方向。
在winpe下操作linux分區的難點,在于它不如ntfs受windows中的磁盤工具如diskgen,pqmaigc之類與其結合支持得好,在windows下用此類工具操作EXT3,要么不受支持(需要特定驅動且這類驅動往往很原始),要么能讀不能寫ext分區,要么能寫但是頻頻藍屏,更別說動態對其調大小,與類gho方式恢復鏡像等(diskgen493開始支持格式化EXT3,也不行,稍后會講到)。甚至格式化都很久
關于單分區linux動態擴展出新分區有LVM這樣的方案,但是要求在業已分好標識為8e的分區格式的情況下進行。
我們的總目標,還要打造一個windows,linux二合一的pe維護盤(保證一切在該xp based winpe下完全,且不需要二次進不同的ISO環境,比如合盤的windows+linux pe)。這一切我們將在1g內存的阿里云預裝了ubuntu14.04 32bit的一臺機器上完成。下面開始:
這里我們額外用到的virtiope工具有(除了原來封裝于virtiope的四個:showdriver,ext234reader,bootice,ramdisk),還有:winpm 7 服務器版本for winpe,它用來分出新ext3區。,還有colinux noimage(busybox我們能用到的工具有mount,tar,cp等等)用來重建系統:眾所周知colinux,根據我的《發表colinux》,它被定位于guestos,可是它本身也是工具,colinux可以nomiage的配置形式運行,可加載windows目錄為分區也可加載本地硬盤為分區。不加載任何鏡像的colinux自帶busybox,可以實現在windows下操作linux硬盤分區,實現真正的重新格式化,分區,擴容等效果。最后還需要從網上找一份新grub boot文件包,用來重建grub2.0。
1)準備工作,將以上幾個工具和boot文件包上傳放到boot/tools下,然后tar整個根目錄
cd / tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
看到打包后的大小是570m,這個就是原系統鏡像。
2)然后,啟動進入virtiope,利用ramdisk建立一個590m的內存盤(size=0000250 hex)。利用234extreader將/boot/tools和backup.tar.gz放進來這里的暫存盤是T:(為了操作234extreader你最好要有一個帶右鍵菜單的鍵盤),利用winpm刪除整個40G分區然后分二個小ext3分區,一個10G用來作新的系統盤,其它30G用作自由空間日后作數據和鏡像存放。打開colinux conf文件夾,noimage.conf中設置如下:
cobd0="\Device\Harddisk0\Partition1" cofs0="..\..\..\" (因為tools與backup.tar.gz并列放在T:中,回退3級才能看到T盤根) 保持mem=128,方便稍后的復制解壓,也不能開得過大,因為1G的內存開了用得差不多了
現在portable_colinux.bat打開,提示enter激活busybox時,mount 2個盤到noimage colinux:
mount /dev/cobd0 /mnt/temp (10g盤) mount -t cofs 0 /mnt/win (注意cofs與0中間有個空格)
(以上2個mnt點是colinux自帶的)
3)然后,就是利用busybox中的工具:
cp mnt/win/backup.tar.gz mnt/temp/backup.tar.gz chdir mnt/temp tar -xvpzf backup.tar.gz -C / --numeric-owner 解壓
用bootice安裝新的mbr grub2.0到硬盤,從網上下載grub的boot文件包替換現有的boot文件夾(除了保留boot下原有的10個內核文件)。
4),最后重啟,進入分區調整后的linux。
如果看到新的grub2啟動界面,就說明基本要完成了
set root=(hd0,msdos1) linux /boot/vmlinuz-4.4.0-85-generic ro root=/dev/vda1 (注意阿里云是vda) initrd /initrd.img boot
進入新的系統,成功!!
一些失敗的嘗試:
我曾嘗試7zip直接解壓或gnu windows tar解壓到ext2sd形成的分區中,但都會藍屏,這就是為什么我開頭就說windows下處理linux分區是非原生的。大部分時間它只是輔助用一下。據說比ext2sd,ext2ifs更好的是Paragon_ExtFS之類,但是上傳后無法運行,也無心去試了。不過(要是virtiope日后直接集成了ext2sd就不用這步了)這倒是另外一個極好的嘗試方向.
我也曾試過diskgen是4.9.3的(4.9.3的開始支持對ext2/3的分區,它雖然比較大,但是它綜合了bootice,234extreader的全部,且鼠標操作好。),跟上面一樣它們甚至在xp winpe上無法運行。只有這個winpm 7 服務器版本for winpe很好支持手標操作。
我曾試過mount -t tmpfs -o size=590m tmpfs /mnt/tmp,內部fdisk,直接DD,等等,都不夠直觀或根本行不通。
關于如何利用virtiope+colinux實現linux系統盤動態無損多分區問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。