|
|
<!doctype html>
|
|
|
<html class="no-js" lang="tw">
|
|
|
<head>
|
|
|
<meta charset="utf-8">
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
<meta name="author" content="Eric Chang">
|
|
|
<meta name="description" content="What’s the Worst That Could Happen?">
|
|
|
<meta name="keywords" content="linux,blog,responsive,search,font awesome,pages,posts,multilingual,highlight.js,syntax highlighting,premium,shortcuts">
|
|
|
<meta content="" name="keywords">
|
|
|
<meta name="generator" content="Hugo 0.50" />
|
|
|
<title> Ubuntu 1804 Install Root on Raid | MCの飄狂山莊㊣</title>
|
|
|
<meta name="description" content="Ubuntu 1804 Install Root on Raid - What’s the Worst That Could Happen?">
|
|
|
<meta itemprop="name" content="Ubuntu 1804 Install Root on Raid">
|
|
|
<meta itemprop="description" content="Ubuntu 1804 Install Root on Raid - What’s the Worst That Could Happen?">
|
|
|
<meta property="og:title" content="Ubuntu 1804 Install Root on Raid">
|
|
|
<meta property="og:description" content="Ubuntu 1804 Install Root on Raid - What’s the Worst That Could Happen?">
|
|
|
<meta property="og:image" content="https://h.cowbay.org/images/post-default-11.jpg">
|
|
|
<meta property="og:url" content="https://h.cowbay.org/post/ubuntu-1804-install-root-on-raid/">
|
|
|
<meta property="og:site_name" content="MCの飄狂山莊㊣">
|
|
|
<meta property="og:type" content="article">
|
|
|
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-32x32.png" sizes="32x32">
|
|
|
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-16x16.png" sizes="16x16">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="https://h.cowbay.org/sass/combined.min.a89dfa577f701bffe9659f476ef61241cb2a3452b913e793463b0074a10c0a59.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
|
|
|
|
|
|
|
|
</head>
|
|
|
<body class="bilberry-hugo-theme">
|
|
|
|
|
|
<nav class="permanentTopNav">
|
|
|
|
|
|
<div class="container">
|
|
|
<ul class="topnav">
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
<div id="search-box" class="search">
|
|
|
<i class="fa fa-search"></i>
|
|
|
<input id="search" type="text" placeholder="">
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
</nav>
|
|
|
|
|
|
|
|
|
<header>
|
|
|
<div class="container">
|
|
|
<div class="logo">
|
|
|
<a href="/" class="logo">
|
|
|
|
|
|
<img src="https://www.gravatar.com/avatar/e4eb1f8e016ffb73e9889f87d16e15f0?d=mm&size=200" alt="">
|
|
|
|
|
|
|
|
|
<span class="overlay"><i class="fa fa-home"></i></span>
|
|
|
</a>
|
|
|
</div>
|
|
|
<div class="titles">
|
|
|
<h3 class="title"><a href="/">MCの飄狂山莊㊣</a></h3>
|
|
|
|
|
|
<span class="subtitle">What’s the Worst That Could Happen?</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="toggler permanentTopNav">
|
|
|
|
|
|
<i class="fa fa-bars" aria-hidden="true"></i>
|
|
|
</div>
|
|
|
</div>
|
|
|
</header>
|
|
|
|
|
|
|
|
|
<div class="main container">
|
|
|
|
|
|
|
|
|
<div class="article-wrapper u-cf single">
|
|
|
|
|
|
<a class="bubble" href="/post/ubuntu-1804-install-root-on-raid/">
|
|
|
<i class="fa fa-fw fa-pencil"></i>
|
|
|
</a>
|
|
|
|
|
|
<article class="default article">
|
|
|
|
|
|
<div class="featured-image">
|
|
|
<a href="/post/ubuntu-1804-install-root-on-raid/">
|
|
|
<img src="/images/post-default-11.jpg" alt="">
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="content">
|
|
|
<h3><a href="/post/ubuntu-1804-install-root-on-raid/">Ubuntu 1804 Install Root on Raid</a></h3>
|
|
|
<div class="meta">
|
|
|
|
|
|
|
|
|
<span class="date moment">2019-01-16</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span class="categories">
|
|
|
|
|
|
<a href="/categories/%E7%AD%86%E8%A8%98">筆記</a>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
|
|
|
|
<span class="author"><a href="/author/eric-chang">Eric Chang</a></span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<p>最近在弄一台機器,想要把ubuntu 18.04 安裝在software raid上</p>
|
|
|
|
|
|
<p>因為新開的機器大部分都是在proxmox上,所以很少碰實體機器了</p>
|
|
|
|
|
|
<p>結果在安裝過程中,做raid碰到一些問題,來紀錄一下</p>
|
|
|
|
|
|
<p></p>
|
|
|
|
|
|
<p>要先說明 Ubuntu 提供的ISO類型,這會牽涉到後續裝raid</p>
|
|
|
|
|
|
<p>底下這是ubuntu 網頁上的ISO列表</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/32JIHL0.png" alt="ubuntu iso list" /></p>
|
|
|
|
|
|
<p>大致上分為 Desktop/live-server 兩種</p>
|
|
|
|
|
|
<p>因為我要裝的是server,所以我一開始當然是選live-server</p>
|
|
|
|
|
|
<p>但是用這個ISO開機,要設定software raid時,會出現警告訊息</p>
|
|
|
|
|
|
<p>提示不可以把所有的分割區都指定給 RAID/LVM ,這樣會沒有地方可以放 /boot</p>
|
|
|
|
|
|
<p>錯誤如圖</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/uhSpn6w.png" alt="create root on raid error" /></p>
|
|
|
|
|
|
<p>所以我很「鄉愿」的,那就切一個/boot 給它用,算是暫時解決這問題 XD</p>
|
|
|
|
|
|
<p>但是這樣的作法,總有一天會出事</p>
|
|
|
|
|
|
<p>因為如果這個 /boot 掛了,雖然底下的系統有做mirror</p>
|
|
|
|
|
|
<p>但還是不能開機,那這樣做raid根本沒有意義啊!</p>
|
|
|
|
|
|
<p>所以研究了兩天,發現一個很重要的事情</p>
|
|
|
|
|
|
<p>我根本就抓錯ISO了啊!!!!!!!</p>
|
|
|
|
|
|
<p>會這樣想是因為中間有其他task在裝debian9</p>
|
|
|
|
|
|
<p>一開始也是抓live-dvd版本</p>
|
|
|
|
|
|
<p>但是這個版本沒有辦法自訂要安裝哪些套件,所以預設安裝完會包含windows manager、office、字型等等</p>
|
|
|
|
|
|
<p>加起來總共5.x G ….</p>
|
|
|
|
|
|
<p>然後我還要手動移除這些套件,這不是脫褲子放屁嗎?</p>
|
|
|
|
|
|
<p>翻了一下google,發現是因為ISO的關係,要去下載netinst的ISO</p>
|
|
|
|
|
|
<p>才能在安裝過程中自訂套件</p>
|
|
|
|
|
|
<p>從這邊延伸到ubuntu的問題</p>
|
|
|
|
|
|
<p>會不會是我也抓錯ISO了呢?</p>
|
|
|
|
|
|
<p>再次google相關訊息,果然ubuntu也有類似的netboot ISO</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/G2ImxhQ.png" alt="ubuntu mini iso" /></p>
|
|
|
|
|
|
<p>檔案很小,只有60M左右,趕快下載來安裝!</p>
|
|
|
|
|
|
<p>這次果然可以在安裝過程中,順利設定software raid,並且掛載在 / 根目錄底下進行安裝</p>
|
|
|
|
|
|
<h2 id="but-對-永遠少不了這個but">BUT …. 對,永遠少不了這個BUT</h2>
|
|
|
|
|
|
<p>安裝過程會卡住…</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/FpWsjsO.png" alt="ubuntu install with mini iso hangs" /></p>
|
|
|
|
|
|
<p>卡在這邊幾個小時了,都不會動</p>
|
|
|
|
|
|
<p>我在猜可能是mirror site 有問題,所以抓套件抓不到就卡住了?</p>
|
|
|
|
|
|
<p>一直卡著也不是辦法,於是又去ubuntu官網看了一下,發現有另外一個server的 ISO</p>
|
|
|
|
|
|
<p>這個叫 “Alternative Ubuntu Server installer”</p>
|
|
|
|
|
|
<p>在官網的這個位置</p>
|
|
|
|
|
|
<p><a href="https://www.ubuntu.com/download/alternative-downloads">https://www.ubuntu.com/download/alternative-downloads</a></p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/n0E1ea3.png" alt="Alternative Ubuntu Server Installer" /></p>
|
|
|
|
|
|
<p>進入後,會有個列表,找到 server amd64 的ISO,這個才是正確的</p>
|
|
|
|
|
|
<p>和第一次不同的是,這個沒有”live” ,很重要!</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/c4GTujY.png" alt="Ubuntu alternative-downloads" /></p>
|
|
|
|
|
|
<p>用這個ISO開機,就可以正常的做出software raid,並且指定安裝作業系統,也不會有卡住的狀況</p>
|
|
|
|
|
|
<p>做出來的系統磁區大概是這樣
|
|
|
<img src="https://i.imgur.com/dyWIH7E.png" alt="ubuntu root on software raid" /></p>
|
|
|
|
|
|
<p>這台VM的硬碟是透過10G網卡連到一個四塊Sandisk 240G SSD 組成的raid0空間</p>
|
|
|
|
|
|
<p>順便看一下速度
|
|
|
<img src="https://i.imgur.com/V9WwIOC.png" alt="10g nfs storage performance" /></p>
|
|
|
|
|
|
<p>10G就是快!就是爽!</p>
|
|
|
|
|
|
<p>爽完之後,還是要確認一下… 首先先執行 sudo dpkg-reconfigure grub-pc</p>
|
|
|
|
|
|
<p>看看是不是兩顆硬碟都有裝 grub ,這樣萬一有一顆硬碟故障,另一顆才能啟動</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/7xAcCbz.png" alt="dpkg-reconfigure grub-pc" /></p>
|
|
|
|
|
|
<p>看來因為是在安裝過程中,就指定了要把系統裝在raid上,所以ubuntu很聰明的,也自動把grub裝在兩顆硬碟上了</p>
|
|
|
|
|
|
<p>來試試看拔掉一顆硬碟還能不能正常運作</p>
|
|
|
|
|
|
<p>直接在proxmox 管理界面中,detach 一顆硬碟</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/lLFcdk0.png" alt="detach one of mirror raid" /></p>
|
|
|
|
|
|
<p>果然報錯誤了</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/1SFdVA0.png" alt="mirror raid failed" /></p>
|
|
|
|
|
|
<p>重開機看看,也沒有問題,可以順利開機!</p>
|
|
|
|
|
|
<p>開機過程有看到raid 只剩下一顆在運作的訊息</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/oZNIN4D.png" alt="mirror raid work with one disk only" /></p>
|
|
|
|
|
|
<p>再來把硬碟加回去</p>
|
|
|
|
|
|
<p>然後用mdadm 指令加入分割區,raid就會開始rebuid了</p>
|
|
|
|
|
|
<p><img src="https://i.imgur.com/3nu2Ij8.png" alt="mdadm rebuild raid" /></p>
|
|
|
|
|
|
<p>所以,如果有打算要做software raid來安裝ubuntu 作業系統的,一開始就要選對ISO</p>
|
|
|
|
|
|
<p>才不會白忙那麼多時間啊!</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="footer">
|
|
|
|
|
|
|
|
|
|
|
|
<div class="tags">
|
|
|
<i class="fa fa-tags"></i>
|
|
|
<div class="links">
|
|
|
|
|
|
<a href="/tags/ubuntu">ubuntu</a>
|
|
|
|
|
|
<a href="/tags/raid">raid</a>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</article>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div id="disqus_thread"></div>
|
|
|
<script type="application/javascript">
|
|
|
var disqus_config = function () {
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
(function() {
|
|
|
if (["localhost", "127.0.0.1"].indexOf(window.location.hostname) != -1) {
|
|
|
document.getElementById('disqus_thread').innerHTML = 'Disqus comments not available by default when the website is previewed locally.';
|
|
|
return;
|
|
|
}
|
|
|
var d = document, s = d.createElement('script'); s.async = true;
|
|
|
s.src = '//' + "h-cowbay-org-1" + '.disqus.com/embed.js';
|
|
|
s.setAttribute('data-timestamp', +new Date());
|
|
|
(d.head || d.body).appendChild(s);
|
|
|
})();
|
|
|
</script>
|
|
|
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
|
|
<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<footer>
|
|
|
<div class="container">
|
|
|
|
|
|
|
|
|
<div class="recent-posts">
|
|
|
<strong></strong>
|
|
|
<ul>
|
|
|
|
|
|
<li>
|
|
|
<a href="/post/do-no-use-10-0-0-0-private-ipaddr-in-gcp/">[筆記] 在gcp 中用wireguard建立VPN時,不要用 10.0.0.0/16 網段/Do No Use 10 0 0 0 Private Ipaddr in GCP</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/post/multiple-site-to-site-vpn-using-wireguard/">[筆記] 透過 wireguard 建立多點 site to site VPN / Multiple Site to Site VPN Using Wireguard</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/post/site-to-site-vpn-using-wireguard-in-two-edgerouters/">[筆記] 在edgerouter上用wireguard 建立site to site VPN / Site to Site Vpn Using Wireguard in Two Edgerouters</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/post/another-way-to-keep-ansible-log/">[筆記] 為了保存log 用script 指令執行ansible / Another Way to Keep Ansible Log using script command</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/post/send-mail-to-notify-after-pxe-install/">[筆記] 用pxe 安裝系統,完成後送出郵件通知 / send mail notification after pxe install</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/post/ansible-run-task-depends-on-ipaddr/">[ansible] 用 ip 位置判斷是否要執行task /ansible run task depends on ipaddr</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/post/ansible-selectattr-from-list-in-dictionary/">[ansible] 引用事先定義好的yaml檔裡面的變數 - Ansible Selectattr From List in Dictionary file</a>
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="categories">
|
|
|
<a href="/categories/"><strong></strong></a>
|
|
|
<ul>
|
|
|
|
|
|
<li>
|
|
|
<a href="/categories/%E7%AD%86%E8%A8%98">筆記 (24)</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/categories/ansible">Ansible (3)</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/categories/linux">Linux (1)</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/categories/proxmox">Proxmox (1)</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/categories/ps">Ps (1)</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/categories/%E7%A2%8E%E5%BF%B5">碎念 (1)</a>
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
<a href="/categories/%E7%BE%A4%E6%9A%89">群暉 (1)</a>
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="right">
|
|
|
|
|
|
<div class="external-profiles">
|
|
|
<strong></strong>
|
|
|
|
|
|
|
|
|
<a href="https://www.facebook.com/mariahchang" target="_blank"><i class="fa fa-facebook-adblock-proof"></i></a>
|
|
|
|
|
|
|
|
|
<a href="https://twitter.com/changchichung" target="_blank"><i class="fa fa-twitter-adblock-proof"></i></a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/changchichung" target="_blank"><i class="fa fa-github"></i></a>
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://www.yapee.tw/mvc/onlinePay/webLink?key=lMC74kucH21JChCR77-wJ80ZZ-Poh11amP24BwiDdHw" target="_blank"><img border="0" src="https://www.yapee.tw/mvc/file/publicFile?pathType=data/linkLogo/B0S0F0002585.jpg"></img></a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
</footer>
|
|
|
|
|
|
|
|
|
<div class="credits">
|
|
|
<div class="container">
|
|
|
<div class="copyright">
|
|
|
<a href="https://github.com/Lednerb" target="_blank">
|
|
|
©
|
|
|
|
|
|
2017
|
|
|
|
|
|
by Lednerb
|
|
|
</a>
|
|
|
|
|
|
</div>
|
|
|
<div class="author">
|
|
|
<a href="https://www.yapee.tw/mvc/onlinePay/webLink?key=lMC74kucH21JChCR77-wJ80ZZ-Poh11amP24BwiDdHw" target="_blank">Bilberry Hugo Theme</a>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="application/javascript">
|
|
|
var doNotTrack = false;
|
|
|
if (!doNotTrack) {
|
|
|
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
|
|
|
ga('create', 'UA-138954876-1', 'auto');
|
|
|
|
|
|
ga('send', 'pageview');
|
|
|
}
|
|
|
</script>
|
|
|
<script async src='https://www.google-analytics.com/analytics.js'></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" src="https://h.cowbay.org/js/externalDependencies.39c47e10e241eae2947b3fe21809c572.js" integrity="md5-OcR+EOJB6uKUez/iGAnFcg=="></script>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" src="https://h.cowbay.org/js/theme.ff50ae6dc1bfc220b23bf69dbb41b54e.js" integrity="md5-/1CubcG/wiCyO/adu0G1Tg=="></script>
|
|
|
|
|
|
<script>
|
|
|
$(".moment").each(function() {
|
|
|
$(this).text(
|
|
|
moment( $(this).text() )
|
|
|
.locale( "tw" )
|
|
|
.format('LL')
|
|
|
);
|
|
|
});
|
|
|
|
|
|
$(".footnote-return sup").html("");
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
var client = algoliasearch("2XL0P8XDCY", "4ef65b37b627bb886b46c34a10e63aa6");
|
|
|
var index = client.initIndex("h_cowbay_org");
|
|
|
|
|
|
$('#search').autocomplete({ hint: false, autoselect: true, debug: false },
|
|
|
[
|
|
|
{
|
|
|
|
|
|
source: $.fn.autocomplete.sources.hits(index, { hitsPerPage: 10 }),
|
|
|
|
|
|
displayKey: function(suggestion) {
|
|
|
return suggestion.title || suggestion.author
|
|
|
},
|
|
|
templates: {
|
|
|
suggestion: function(suggestion) {
|
|
|
return "<span class='entry " + suggestion.type + "'>"
|
|
|
+ "<span class='title'>" + suggestion.title + "</span>"
|
|
|
+ "<span class='fa fa-fw " + suggestion.iconClass + "'></span>"
|
|
|
+ "</span>"
|
|
|
;
|
|
|
},
|
|
|
empty: function() {
|
|
|
return "<span class='empty'></span>"
|
|
|
},
|
|
|
footer: function() {
|
|
|
return '<div class="branding">Powered by <img src="https:\/\/h.cowbay.org\/dist\/algolia-logo-light.svg" /></div>'
|
|
|
}
|
|
|
|
|
|
},
|
|
|
}
|
|
|
])
|
|
|
.on('autocomplete:selected', function(event, suggestion, dataset) {
|
|
|
window.location = (suggestion.url);
|
|
|
})
|
|
|
.keypress(function (event, suggestion) {
|
|
|
if (event.which == 13) {
|
|
|
window.location = (suggestion.url);
|
|
|
}
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
</html>
|