天天看點

秒殺SSD,ubuntu極速開發環境搭建

在這個快節奏的時代。能夠使用最快速度最低代價完成任務具有非常重要的意義,對于現代開發者來說,linux是生活中必不可少且不可替代的工具,如果我們在開發少或學習中少一些遇到環境的坑,會節省很多時間,潛伏在各種linux群中數年,發現大家都有手賤(操作失誤,笑),是以在本文中給出終極解決方案: 直接使用ubuntu live cd 來完成系統的啟動。

那麼最快的linux安裝辦法又是什麼呢?其實經過嚴謹的思考之後我個人覺得是不安裝。我們可以準備從grub啟動ubuntu作業系統把系統放到記憶體中,再預制出各種情況的環境包,也就是環境子產品化,因為系統是在整個記憶體中是以速度非常非常快,需要子產品化的内容并不多,比如說ssh vim tmux 為一組工具,開機後一個指令就可以激活工具包,不到幾秒鐘的時間即可完成,其他的如chrome浏覽器一類的都可以快速完成在記憶體上的安裝。通過這種方式讓環境更加靈活更加快速準備好開發環境。

這是一個思路上的變化,從我需要什麼就安裝什麼一起都準備好給你用<code>-&gt;</code>變成了隻啟動基礎的系統然後我需要什麼我就後加載什麼。

最後的準備在于容器,docker 以及rkt與runc的準備,在團隊内可以秒級推送運作的環境。

秒殺SSD,ubuntu極速開發環境搭建

本文依然有它的缺點: 主要展現在兩個方面

如果預設驅動不好使會造成很多麻煩。

對于記憶體小的開發機器還是做快照比較好。最少4g記憶體,我們推薦記憶體在8g以上最好是16g或者32g記憶體的機器上采用此方案。

因為本方案整個作業系統都是加載到記憶體中的,硬碟速度即為記憶體的速度,我這裡實測可以達到4.5gb/s,是以你準備好屌絲逆襲(買不起ssd)秒殺高富帥了嗎?

<a target="_blank"></a>

雖然ubuntu有一點不自由,但是我個人覺得包的品質管理還是非常好的,的确适合開發者使用。

在本文中我們使用單檔案版本的docker檔案,友善可控。無任何累贅。本人不喜腳本安裝。

這兩種産品是libcontainer的代表。相對于docker來說,它是一個容器隻需要一個程序,對于docker來說,他需要一個守護程序。在本文中(本部落客)不評價任何産品的好壞,隻說什麼時候适合用什麼。當然在我們這裡利用了它啟動友善,挂載友善的特性讓我們的工作更友善更友善更友善!

由于現在runc還沒有釋出1.0版本文檔幾乎沒有,是以我這裡會給出我的詳細研究結果。至于rkt還是大家自己摸索,文檔已經很全了。

作為專門運作容器的作業系統,穩定性可不屬性都是前所未有,當然我們的容器可以跑在這個上面本文中會提及兩個系統的相容性方案。

ubuntu适合程式開發的情況。啟動速度可能在1分鐘左右(有點慢)。但是有圖形界面,有定制基礎環境的方案。

coreos适合跑程式,啟動速度在10秒以下适合釋放更多記憶體來跑臨時業務,做測試的時候實用此方案。

它可以裝在硬碟上幫助你啟動作業系統,幾乎所有作業系統都可以,當然也包含本次的方案内容。安裝方式有很多種。而且必須得根據自己的情況來安裝。因為每個人電腦上的作業系統情況都不一樣,有的已經有系統了。有的不想給自己裝引導。可能先放到u盤上引導都有可能。是以這裡不做安裝方法上的更多描述可以自己根據情況到搜尋引擎上搜尋。

我之前是安裝了windows,是以我直接安裝了easybcd然後安裝neogrub來實作的。具體操作步驟如下:

下載下傳安裝easybcd

如圖所示

秒殺SSD,ubuntu極速開發環境搭建

安裝重新開機電腦之後選擇grub啟動項可以進入一個類似輸入指令的界面即可确定完成安裝。

如果想要準備啟動ubuntu那麼有三個關鍵要素,

<a href="http://mirrors.aliyun.com/ubuntu-releases/14.04.2/ubuntu-14.04.2-desktop-amd64.iso" target="_blank">ubuntu-14.04.2-desktop-amd64.iso</a>

image中casper/vmlinuz.efi

image中casper/initrd.lz

這三個檔案作為啟動的必要檔案請放到分區中容易找到的地方。推薦做法:給自己的硬碟上開個ext4 分區,然後把三個檔案丢到裡面去。

工作中我們講求流程,當然我們也需要一定的路程,我們不可能一次調整就成功把iso啟動起來。是以我們先加一個調試流程。

<code>root (hd0,1)</code>

<code>kernel (hd0,1)/casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-14.04.2-desktop-amd64.iso ro quiet splash locate=en_us.utf-8</code>

<code>initrd (hd0,1)/casper/initrd.lz</code>

<code>root (hd0,1)</code> 設定grub的root裝置

kernel 指令套格式,變化參數 vmlinuz.efi 和 ubuntu-14.04.2-desktop-amd64.iso 要與你放到硬碟上的位置對應,可以使用tab自動補全非常實用。

initrd 依然是套格式找到對應硬碟傻姑娘的initrd.lz的位置。

如果出現錯誤了按<code>↑</code>會出現剛才的指令,多加修改直到成功啟動。

如果是neogrub配置檔案路徑<code>c:\nst\menu.lst</code>,其他的請參考說明文檔,一般都會有的。

配置檔案寫法:

<code>timeout 3</code>

<code>default 0</code>

<code></code>

<code>title ubuntu</code>

3秒等待自動選擇第一項,名稱ubuntu 别的剩下的就是剛才調試内容的指令了。

剛醒需求配置是指在容器之外的剛醒需求配置,比如說編輯器,ssh等等工具箱。配置方法: <code>apt</code>。

修改安裝源:<code>sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list &amp;&amp; apt-get update</code>

安裝你需要的軟體包:<code>apt-get install -y vim screen tmux ssh-server</code>等等

調試你的環境看看是否好使,然後複制檔案夾<code>/var/cache/apt/archives</code>中所有deb檔案即為您剛才所有的安裝包。複制到一個可以持久化的檔案夾中等待使用。

回調環境: 每當您重新啟動之後這些安裝包即消失,想恢複,進入到上一步中複制到的檔案夾中執行如下指令<code>dpkg -i *</code>即可安裝預先準備好的軟體

<code>靈活使用</code>,此步驟為發揮組合拳威力的一步。當您反複定制凝練您的安裝包之後,會根據個人情況選擇不同的目錄來初始化您的環境,其結果是,又小又輕,非常可靠。再也不怕手賤導緻環境崩壞,再加上外部的git服務保證工作内容的安全性基本上可以肯定的說:<code>我們的環境與硬體與工作耦合度降低不少</code>.

對于apt無法安裝的内容,比如說jdk 與定制版本的eclipse您可以通過下載下傳完之後持久化儲存到硬碟中,寫一個腳本解壓後放到硬碟中至于環境直接寫入到profile中即可。

使用此方法之後假如您使用ide真的會有一個非常非常大的速度提升,我打開eclipse c/c++ <code>5秒鐘</code>即可。

一般情況下我們安裝docker都是通過網上下載下傳腳本安裝,但是這種情況下我們推薦使用直接下載下傳單檔案版本的來完成安裝安裝腳本如下:

<code>curl -ssl -o https://get.daocloud.io/docker/builds/linux/x86_64/docker-latest</code>

<code>chmod +x docker-latest</code>

<code>mv docker-latest /usr/bin/docker</code>

<code>docker -d &amp;</code> 

在第三行中複制docker程式到任何path下的檔案夾内備用。在配置上,還是要吧<code>/var/lib/docker</code>放到可持久化的軟連接配接下面。比如說按照下面的操作:

<code>rm -rf /var/lib/docker</code>

<code>ln -s /isodevice/docker /var/lib/docekr</code> 

按照這種方法操作可以讓docker image 持久化儲存在硬碟中。重新開機也能找回來。這裡注意,如果您之前就實踐了coreos 171.3 版本上的docker它使用的是1.6版本他的存儲檔案格式與1.7的不同是以不通用。我就踩到這個坑了。接下來的操作就與docker一樣了。

注意:這個安裝包: <code>cgroup-lite_1.9_all.deb</code> 一定要裝,預設的CD光牒中就差這一個依賴,在下面的安裝包中有要不就apt安裝儲存下來都可以。

在本段文檔中,我們給出了一個全新的使用linux作業系統的思路不安裝。并且做了一定的前期準備工作。啟動了linux作業系統做到本步驟如果您是新手就可以開始linux的學習旅程了,如果您是需要此方案工作已經可以展開一般性質的工作了。

最後我真的拆掉我的三爽垃圾ssd(越用越慢)直接上記憶體。

方案合理要素:

root權限過大。有時導緻無法挽回的誤操作。

現在的電腦記憶體不是很貴。大部分linux電腦記憶體都在閑置。

linux作業系統如果每次執行的任務如果比較單一(一台實體機隻給一個人用)真的不會很大。

給重新啟動計算機賦予了新的意義。

真正超過ssd的速度,成本更低。(實測啟動eclipse c/c++ 僅需要5s)

<b>原文釋出時間為:2015-07-27</b>

<b></b>

<b>本文來自雲栖社群合作夥伴“linux中國</b>

繼續閱讀