1<!DOCTYPE html> 2<html xmlns="http://www.w3.org/1999/xhtml" lang="fr-FR"> 3<head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width" /> 6 <link rel="profile" href="http://gmpg.org/xfn/11" /> 7 <link rel="pingback" href="https://www.drgeek.fr/xmlrpc.php" /> 8 <title>Etape 1 (V1) – Installation – Secure Boot EFI & ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local) – DrGeek.fr</title> 9 10 <style type="text/css"> 11 .site-header { background: !important; } 12 .footer-widgets h3 { color: !important; } 13 .site-footer { background: !important; } 14 .footer-widget-wrapper { background: !important; } 15 .row.site-info { color: !important; } 16 #secondary h3.widget-title, #secondary h4.widget-title { color: !important; } 17 #secondary .widget li, #secondary .textwidget, #secondary .tagcloud { background: !important; } 18 #secondary .widget a { color: !important; } 19 .navbar-default,.navbar-default li>.dropdown-menu, .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dr { background-color: !important; } 20 .navbar-default .navbar-nav>li>a, .navbar-default li>.dropdown-menu>li>a { color: !important; } 21 .navbar-default .navbar-brand, .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { color: #333333 !important; } 22 h1.entry-title, .entry-header .entry-title a { color: !important; } 23 .entry-content, .entry-summary, .post-feed-wrapper p { color: !important; } 24 h5.entry-date, h5.entry-date a { color: !important; } 25 .top-widgets { background: !important; } 26 .top-widgets h3 { color: !important; } 27 .top-widgets, .top-widgets p { color: !important; } 28 .bottom-widgets { background: !important; } 29 .bottom-widgets h3 { color: !important; } 30 .frontpage-site-title { color: #4e4e50 !important; } 31 .frontpage-site-description { color: !important; } 32 .bottom-widgets, .bottom-widgets p { color: !important; } 33 .footer-widgets, .footer-widgets p { color: !important; } 34 .home .lh-nav-bg-transform .navbar-nav>li>a { color: !important; } 35 .home .lh-nav-bg-transform.navbar-default .navbar-brand { color: !important; } 36 body, #secondary h4.widget-title { background-color: !important; } 37 @media (max-width:767px){ 38 .lh-nav-bg-transform button.navbar-toggle, .navbar-toggle, .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { background-color: !important; } 39 .home nav.navbar.lh-nav-bg-transform.navbar-default.navbar-fixed-top.navbar-left, .home .lh-nav-bg-transform, .navbar-default .navbar-toggle .icon-bar, .navbar-default .navbar-toggle:focus .icon-bar, .navbar-default .navbar-toggle:hover .icon-bar { background-color: !important; } 40 .navbar-default .navbar-nav .open .dropdown-menu>li>a, .home .lh-nav-bg-transform .navbar-nav>li>a {color: !important; } 41 .home .lh-nav-bg-transform.navbar-default .navbar-brand { color: #333333 !important; } 42 } 43 </style> 44 <link rel='dns-prefetch' href='//fonts.googleapis.com' /> 45<link rel='dns-prefetch' href='//s.w.org' /> 46<link rel="alternate" type="application/rss+xml" title="DrGeek.fr » Flux" href="https://www.drgeek.fr/feed/" /> 47<link rel="alternate" type="application/rss+xml" title="DrGeek.fr » Flux des commentaires" href="https://www.drgeek.fr/comments/feed/" /> 48<link rel="alternate" type="application/rss+xml" title="DrGeek.fr » Etape 1 (V1) – Installation – Secure Boot EFI & ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local) Flux des commentaires" href="https://www.drgeek.fr/tutoriels/article/serveur-1-installation/feed/" /> 49
49<script type="text/javascript"> 50 window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.drgeek.fr\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.9.31"}}; 51 !function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=i.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])?!1:!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([55358,56760,9792,65039],[55358,56760,8203,9792,65039])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(n=t.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings); 52 </script>
52 53 <style type="text/css"> 54img.wp-smiley, 55img.emoji { 56 display: inline !important; 57 border: none !important; 58 box-shadow: none !important; 59 height: 1em !important; 60 width: 1em !important; 61 margin: 0 .07em !important; 62 vertical-align: -0.1em !important; 63 background: none !important; 64 padding: 0 !important; 65} 66</style> 67<link rel='stylesheet' id='series_font-css' href='https://www.drgeek.fr/wp-content/plugins/simple-post-series/inc/icomoon/style.css?ver=2.4' type='text/css' media='all' /> 68<link rel='stylesheet' id='gg-lightbox-css-css' href='https://www.drgeek.fr/wp-content/plugins/global-gallery/js/lightboxes/jQuery.TosRUs/dist/css/jquery.tosrus.gg.min.css?ver=4.9.31' type='text/css' media='all' /> 69<link rel='stylesheet' id='bootstrap-css' href='https://www.drgeek.fr/wp-content/themes/author/css/bootstrap.css?ver=4.9.31' type='text/css' media='all' /> 70<link rel='stylesheet' id='author-style-css' href='https://www.drgeek.fr/wp-content/themes/author/style.css?ver=4.9.31' type='text/css' media='all' /> 71<style id='author-style-inline-css' type='text/css'> 72 /* Color Scheme */ 73 74 /* Accent Color */ 75 76 a:active, 77 a:hover, 78 a:focus { 79 color: #4dbf99; 80 } 81 82 .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { 83 color: #4dbf99; 84 } 85 86 .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { 87 background-color: #4dbf99; 88 background: #4dbf99; 89 border-color:#4dbf99; 90 } 91 92 .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { 93 color: #4dbf99 !important; 94 } 95 96 .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { 97 background-color: #4dbf99; 98 } 99 .btn, .btn-default:visited, .btn-default:active:hover, .btn-default.active:hover, .btn-default:active:focus, .btn-default.active:focus, .btn-default:active.focus, .btn-default.active.focus { 100 background: #4dbf99; 101 } 102 103 .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { 104 color: #4dbf99; 105 } 106 .cat-links a, .tags-links a { 107 color: #4dbf99; 108 } 109 .navbar-default .navbar-nav > li > .dropdown-menu > li > a:hover, 110 .navbar-default .navbar-nav .open .dropdown-menu > .active > a, 111 .navbar-default .navbar-nav > li.menu-item > ul.dropdown-menu > li > a:focus { 112 color: #fff !important; 113 background-color: #4dbf99 !important; 114 } 115 h5.entry-date a:hover { 116 color: #4dbf99; 117 } 118 119 #respond input#submit { 120 background-color: #4dbf99; 121 background: #4dbf99; 122} 123 124 125button:hover, button, button:active, button:focus { 126 border: 1px solid #4dbf99; 127 background-color:#4dbf99; 128 background:#4dbf99; 129} 130.dropdown-menu .current-menu-item.current_page_item a, .dropdown-menu .current-menu-item.current_page_item a:hover, .dropdown-menu .current-menu-item.current_page_item a:active, .dropdown-menu .current-menu-item.current_page_item a:focus { 131 background: #4dbf99 !important; 132 color:#fff !important 133} 134@media (max-width: 767px) { 135 .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover { 136 background-color: #4dbf99; 137 color: #fff; 138 } 139} 140blockquote { 141 border-left: 5px solid #4dbf99; 142} 143.sticky-post{ 144 background: #4dbf99; 145 color:white; 146} 147 148.entry-title a:hover, 149.entry-title a:focus{ 150 color: #4dbf99; 151} 152 153.entry-header .entry-meta::after{ 154 background: #4dbf99; 155} 156 157.readmore-btn, .readmore-btn:visited, .readmore-btn:active, .readmore-btn:hover, .readmore-btn:focus { 158 background: #4dbf99; 159} 160 161.post-password-form input[type="submit"], .post-password-form input[type="submit"]:hover, .post-password-form input[type="submit"]:focus, .post-password-form input[type="submit"]:active { 162 background-color: #4dbf99; 163 164} 165 166.fa { 167 color: #4dbf99; 168} 169 170.btn-default{ 171 border-bottom: 1px solid #4dbf99; 172} 173 174.btn-default:hover, .btn-default:focus{ 175 border-bottom: 1px solid #4dbf99; 176 background-color: #4dbf99; 177} 178 179.nav-previous:hover, .nav-next:hover{ 180 border: 1px solid #4dbf99; 181 background-color: #4dbf99; 182} 183 184.next-post a:hover,.prev-post a:hover{ 185 color: #4dbf99; 186} 187 188.posts-navigation .next-post a:hover .fa, .posts-navigation .prev-post a:hover .fa{ 189 color: #4dbf99; 190} 191 192 193 194 195 #secondary .widget a:hover, 196 #secondary .widget a:focus{ 197color: #4dbf99; 198} 199 200 #secondary .widget_calendar tbody a { 201background-color: #4dbf99; 202color: #fff; 203padding: 0.2em; 204} 205 206 #secondary .widget_calendar tbody a:hover{ 207background-color: #4dbf99; 208color: #fff; 209padding: 0.2em; 210} 211 212</style> 213<link rel='stylesheet' id='font-awesome-css' href='https://www.drgeek.fr/wp-content/themes/author/font-awesome/css/font-awesome.min.css?ver=4.9.31' type='text/css' media='all' /> 214<link rel='stylesheet' id='authorgooglefonts-css' href='//fonts.googleapis.com/css?family=Lato:400,400italic,600,600italic,700,700i,900' type='text/css' media='all' /> 215<link rel='stylesheet' id='fixedtoc-style-css' href='https://www.drgeek.fr/wp-content/plugins/fixed-toc/frontend/assets/css/ftoc.min.css?ver=4.9.31' type='text/css' media='all' /> 216<link rel='stylesheet' id='prism-theme-css' href='https://www.drgeek.fr/wp-content/plugins/ank-prism-for-wp/out/
216prism-css.min.css?ver=1520194149' type='text/css' media='all' /> 217<link rel='stylesheet' id='minerva-kb/css-css' href='https://www.drgeek.fr/wp-content/plugins/minervakb/assets/css/dist/minerva-kb.css?ver=1.4.6' type='text/css' media='all' /> 218<style id='minerva-kb/css-inline-css' type='text/css'> 219.mkb-container {width: 992px;}.mkb-content-main.mkb-content-main--has-sidebar {width: 66%;}.mkb-sidebar {width: 34%;}@media (min-width: 1025px) {.mkb-sidebar.mkb-fixed {position: fixed;top: 97%;}.mkb-sidebar.mkb-fixed-bottom {position: absolute;}}.kb-search__results-summary .kb-search-request-indicator,.mkb-widget .kb-search__results-summary .kb-search-request-indicator {color: #2ab77b;}.mkb-anchors-list__item-link.active:before {background: #00aae8;}.mkb-anchors-list__item-link.active .mkb-anchors-list__item-link-label {color: #fff;}.kb-topic__count,.mkb-article-item__topic {color: #ffffff;background: #4a90e2;}.mkb-article-extra__like,.mkb-article-extra__like:focus,.mkb-article-extra__like:active,.mkb-article-extra__like:visited,.mkb-article-extra__like:hover,.mkb-article-item__likes i {color: #4BB651;}.mkb-article-extra__message {border-color: #eee;background: #f7f7f7;color: #888;}.mkb-article-extra__feedback-sent-message {border-color: #eee;background: #f7f7f7;color: #888;}.mkb-article-extra__feedback-form-submit a {background: #4a90e2;color: #ffffff;}.mkb-article-extra__like.mkb-voted,.mkb-article-extra__like.mkb-voted:focus,.mkb-article-extra__like.mkb-voted:active,.mkb-article-extra__like.mkb-voted:visited,.mkb-article-extra__like.mkb-voted:hover {background-color: #4BB651;border-color: #4BB651;color: #efefef;}.mkb-article-extra__dislike,.mkb-article-extra__dislike:focus,.mkb-article-extra__dislike:active,.mkb-article-extra__dislike:visited,.mkb-article-extra__dislike:hover,.mkb-article-item__dislikes i {color: #C85C5E;}.mkb-article-extra__dislike.mkb-voted,.mkb-article-extra__dislike.mkb-voted:focus,.mkb-article-extra__dislike.mkb-voted:active,.mkb-article-extra__dislike.mkb-voted:visited,.mkb-article-extra__dislike.mkb-voted:hover {background-color: #C85C5E;border-color: #C85C5E;color: #efefef;}.kb-search .kb-search__result-topic {color: #ffffff;background: #4a90e2;}.kb-topic .kb-topic__box-header,.kb-topic .kb-topic__title-link {color: #4a90e2;}.kb-header {background: #ffffff;}.kb-faq__question-title {background: #4bb7e5;color: #ffffff;}.kb-faq__question-title:hover {background: #64bee5;}.kb-faq__answer {background: #ffffff;color: #333;}.kb-faq__no-results {background: #f7f7f7;color: #333;}.kb-faq__count {background: #4bb7e5;color: #ffffff;}.kb-faq .kb-faq__toggle-all .kb-faq__toggle-all-link {background: #4bb7e5;color: #ffffff;}.kb-faq .kb-faq__toggle-all .kb-faq__toggle-all-link:hover {background: #64bee5;}.kb-faq .kb-faq__category-title {margin-top: 1em;margin-bottom: 0.3em;}/* Shortcodes */.mkb-info {background: #d9edf7;color: #333333;border-color: #bce8f1;}.mkb-info__icon {color: #31708f;}.mkb-tip {background: #fcf8e3;color: #333333;border-color: #faebcc;}.mkb-tip__icon {color: #8a6d3b;}.mkb-warning {background: #f2dede;color: #333333;border-color: #ebccd1;}.mkb-warning__icon {color: #a94442;}.mkb-related-content {background: #e8f9f2;color: #333333;border-color: #2ab77b;}.mkb-related-content a {color: #007acc;}.kb-topic.kb-topic--box-view .kb-topic__inner {background: #ffffff;}.kb-topic.kb-topic--box-view .kb-topic__inner:hover {background: #f8f8f8;}.mkb-widget {background: #f7f7f7;color: #888;}.mkb-widget a {color: #888;}.mkb-widget i.fa {color: #888;}.mkb-widget .mkb-widget-title {color: #333;}.mkb-root .mkb-article-text,.mkb-root .mkb-article-header,.mkb-root .mkb-article-item__excerpt {color: #333;}.mkb-root .mkb-article-text a,.mkb-root .mkb-article-header a,.mkb-article-item--detailed .mkb-entry-title a {color: #007acc;}.mkb-root h1 {color: #333;}.mkb-root h2 {color: #333;}.mkb-root h3 {color: #333;}.mkb-root h4 {color: #333;}.mkb-root h5 {color: #333;}.mkb-root h6 {color: #333;}.mkb-breadcrumbs {font-size: 1em;text-align: left;background-color: rgba(255,255,255,0);color: #888;padding-top: 0em;padding-left: 0em;padding-right: 0em;padding-bottom: 0em;}.mkb-breadcrumbs li a {color: #888;}.mkb-single .mkb-root {padding-top: 30px;padding-bottom: 30px;}.mkb-archive .mkb-root {padding-top: 3em;padding-bottom: 3em;}.mkb-settings-home-page .mkb-root {padding-top: 0em;padding-bottom: 0em;}.mkb-search .mkb-root {padding-top: 0em;padding-bottom: 0em;}.mkb-search-match {background: rgba(255,255,255,0);color: #000;}.mkb-pagination ul li {background: #f7f7f7;color: #333;}.mkb-pagination ul li a {color: #007acc;} 220.mkb-content-main--article { background-color:#fff; clear:both; box-shadow:0 2px 4px rgba(0, 0, 0, .1);}.mkb-page-title { text-align:center;}.mkb-sidebar .widget li:first-of-type { margin-top: 0;}.mkb-sidebar .widget li { background: #fff; margin: .5em 5px; padding: 10px 20px; -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, .1); box-shadow: 0 2px 4px rgba(0, 0, 0, .1); border-radius: 2px;}.mkb-widget { background: none !important;}.mkb-sidebar .widget-title { position: relative !important; padding: 0 15px 10px 0 !important; margin: -24px 0 10px !important; background: #eee !important; display: inline-block !important; font-size: 14px !important; color: #9e9e9e !important; text-transform: uppercase !important; font-weight: 600 !important;}.mkb-sidebar .mkb-widget-title { position: relative !important; padding: 0 15px 10px 0 !important; margin: -24px 0 10px !important; background: #eee !important; display: inline-block !important; font-size: 14px !important; color: #9e9e9e !important; text-transform: uppercase !important; font-weight: 600 !important;}#secondary.mkb-fixed { position: fixed; top: 90%; left: 80%;} 221</style> 222<link rel='stylesheet' id='minerva-kb/fa-css-css' href='https://www.drgeek.fr/wp-content/plugins/minervakb/assets/css/vendor/font-awesome.css' type='text/css' media='all' /> 223<link rel='stylesheet' id='minerva-kb/fancybox-css-css' href='https://www.drgeek.fr/wp-content/plugins/minervakb/assets/css/vendor/fancybox/jquery.fancybox-1.3.4.css' type='text/css' media='all' /> 224<link rel='stylesheet' id='fontawesome-css' href='https://www.drgeek.fr/wp-content/plugins/global-gallery/css/font-awesome/css/font-awesome.min.css?ver=4.7.0' type='text/css' media='all' /> 225<link rel='stylesheet' id='gg-custom-css-css' href='https://www.drgeek.fr/wp-content/plugins/global-gallery/css/custom.css?ver=5.4' type='text/css' media='all' /> 226<link rel='stylesheet' id='series-css' href='https://www.drgeek.fr/wp-content/plugins/simple-post-series/series.css?ver=2.4' type='text/css' media='all' />
227<script type='text/javascript' src='https://www.drgeek.fr/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script>
vendor: 1 bytes, line 227
227
228<script type='text/javascript' src='https://www.drgeek.fr/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script>
vendor: 1 bytes, line 228
228
229<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/simple-post-series/autohide.js?ver=2.4'></script>
vendor: 1 bytes, line 229
229
230<script type='text/javascript'> 231/* <![CDATA[ */ 232var IwNRCargs = {"rightclick":"Y","draganddrop":"N"}; 233/* ]]> */ 234</script>
vendor: 1 bytes, line 234
234
235<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/image-watermark/js/no-right-click.js?ver=1.6.4'></script>
235 236<!--[if lt IE 9]>
237<script type='text/javascript' src='https://www.drgeek.fr/wp-content/themes/author/js/html5shiv.js?ver=3.7.3'></script>
237 238<![endif]--> 239<link rel='https://api.w.org/' href='https://www.drgeek.fr/wp-json/' /> 240<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.drgeek.fr/xmlrpc.php?rsd" /> 241<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://www.drgeek.fr/wp-includes/wlwmanifest.xml" /> 242<link rel='prev' title='Cuisiner japonais' href='https://www.drgeek.fr/tutoriels/article/cuisiner-japonais/' /> 243<link rel='next' title='Introduction' href='https://www.drgeek.fr/tutoriels/article/serveur-intro/' /> 244<meta name="generator" content="WordPress 4.9.31" /> 245<link rel="canonical" href="https://www.drgeek.fr/tutoriels/article/serveur-1-installation/" /> 246<link rel='shortlink' href='https://www.drgeek.fr/?p=1735' /> 247<link rel="alternate" type="application/json+oembed" href="https://www.drgeek.fr/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.drgeek.fr%2Ftutoriels%2Farticle%2Fserveur-1-installation%2F" /> 248<link rel="alternate" type="text/xml+oembed" href="https://www.drgeek.fr/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.drgeek.fr%2Ftutoriels%2Farticle%2Fserveur-1-installation%2F&format=xml" /> 249<style>.post-thumbnail img[src$='.svg'] { width: 100%; height: auto; }</style> <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> 250 <style type="text/css" id="author-header-css"> 251 .site-header { 252 background: url(https://www.drgeek.fr/wp-content/uploads/2017/05/bojo_landscape.jpg) no-repeat scroll top !important; 253 background-size: cover !important; 254 } 255 256 @media (min-width: 768px) and (max-width: 1024px){ 257 .site-header { 258 background-size: cover; 259 260 } 261 } 262 263 @media (max-width: 767px) { 264 .site-header { 265 background-size: cover; 266 267 } 268 } 269 @media (max-width: 359px) { 270 .site-header { 271 background-size: cover; 272 273 } 274 275 } 276 .site-header{ 277 -webkit-box-shadow: 0px 0px 2px 1px rgba(182,182,182,0.3); 278 -moz-box-shadow: 0px 0px 2px 1px rgba(182,182,182,0.3); 279 -o-box-shadow: 0px 0px 2px 1px rgba(182,182,182,0.3); 280 box-shadow: 0px 0px 2px 1px rgba(182,182,182,0.3); 281 } 282 283 .site-title, 284 .site-description { 285 color: #fff; 286 } 287 .site-title::after{ 288 background: #fff; 289 content:""; 290 } 291 292 </style> 293 <link rel="icon" href="https://www.drgeek.fr/wp-content/uploads/2017/05/cropped-DrGeek-NB-6_logo_carre-01-32x32.png" sizes="32x32" /> 294<link rel="icon" href="https://www.drgeek.fr/wp-content/uploads/2017/05/cropped-DrGeek-NB-6_logo_carre-01-192x192.png" sizes="192x192" /> 295<link rel="apple-touch-icon-precomposed" href="https://www.drgeek.fr/wp-content/uploads/2017/05/cropped-DrGeek-NB-6_logo_carre-01-180x180.png" /> 296<meta name="msapplication-TileImage" content="https://www.drgeek.fr/wp-content/uploads/2017/05/cropped-DrGeek-NB-6_logo_carre-01-270x270.png" /> 297 <style type="text/css" id="wp-custom-css"> 298 /* 299Vous pouvez ajouter du CSS personnalisé ici. 300 301Cliquez sur lâicône dâaide ci-dessus pour en savoir plus. 302*/ 303 304.site-header { 305 padding: 60px; 306 background-position: top!important; 307} 308 309.frontpage-site-title { 310 font-size: 30px; 311 font-family: Exo; 312 font-style: italic; 313 font-weight: 600; 314} 315 316#menu-barre-principale a{ 317 font-size: 22px; 318 font-family: Exo; 319 font-weight: 600; 320 color: #4E4E50!important; 321} 322 323#menu-barre-principale a:hover{ 324 color: #37719E!important; 325} 326 327div.entry-summary { 328 text-align: justify; 329 text-justify: inter-word; 330} 331 332.gg_galleria_slider_wrap { 333 margin-bottom: 10px; 334} 335 336.mkb-single .entry-title { 337 margin-top:40px; 338 text-align: center; 339} 340 341.mkb-single .entry-content { 342 padding:0px 40px 0px 40px; 343 text-align: justify; 344} 345 346 347.mkb-article-header { 348 margin-left: 45px; 349} 350 351.mkb-article-text { 352 margin-left: 45px; 353 margin-right: 45px; 354} 355 356#ftwp-container.ftwp-wrap { 357 -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, .1) !important; 358 box-shadow: 0 2px 4px rgba(0, 0, 0, .1) !important; 359 -webkit-border-radius: 6px; 360 -moz-border-radius: 6px; 361 border-radius: 6px; 362 z-index:-1; 363} 364 365#ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor { 366 padding: 3px 5px 2px 25px !important; 367} 368 369#ftwp-container.ftwp-wrap, #ftwp-container.ftwp-wrap a, #ftwp-container.ftwp-wrap a:active, #ftwp-container.ftwp-wrap a:focus, #ftwp-container.ftwp-wrap a:hover, #ftwp-container.ftwp-wrap a:link, #ftwp-container.ftwp-wrap a:visited, #ftwp-container.ftwp-wrap button, #ftwp-container.ftwp-wrap button:active, #ftwp-container.ftwp-wrap button:focus, #ftwp-container.ftwp-wrap button:hover, #ftwp-container.ftwp-wrap div, #ftwp-container.ftwp-wrap h3, #ftwp-container.ftwp-wrap header, #ftwp-container.ftwp-wrap li, #ftwp-container.ftwp-wrap li::after, #ftwp-container.ftwp-wrap li::before, #ftwp-container.ftwp-wrap nav, #ftwp-container.ftwp-wrap ol, #ftwp-container.ftwp-wrap span, #ftwp-container.ftwp-wrap ul { 370 z-index:30; 371} 372 373.wp-caption { 374 padding: 3px 3px 3px 3px !important; 375 background: #eee !important; 376 border-style: solid !important; 377 border-color: darkgrey !important; 378 border-spacing: 10px !important; 379 border-width: 1px !important; 380 border-radius: 4px !important; 381} 382 383.wp-caption img { 384 height: auto !important; 385 margin: 0 !important; 386 max-width: 100% !important; 387 padding: 0 !important; 388 width: auto !important; 389 border-width: 1px !important; 390 border-color: darkgrey !important; 391 border-style: solid !important; 392 border-radius: 4px !important; 393} 394 395.wp-caption-text { 396 font-weight:bold; 397 color:#6b6b6b; 398} 399 400.mkb-breadcrumbs__label { 401 vertical-align: middle !important; 402 padding-left:40px; 403} 404 405.mkb-breadcrumbs { 406 margin : 30px 0px 0px 0px !important; 407 font-size: 12px; 408} 409 410.kb-topic .kb-topic__articles li .kb-topic__list-article-icon { 411 position: relative; 412 left: 0; 413 top: 0; 414 height: 1em; 415 margin-right:3px; 416 vertical-align: text-top; 417 418} 419 420.kb-topic__box-count { 421 margin-bottom:5px; 422} 423 424.kb-topic__show-all { 425 font-size:15px; 426} 427 428img.touche { 429 margin:0 0 0 0; 430 vertical-align: middle; 431} 432 433.kb-search__title { 434 font-family: Exo; 435} 436 437.post-series { 438 margin: 0!important; 439 padding: 10px 5px 1px 10px!important; 440 font-size:14px!important; 441 background:#f9f3ff!important; 442} 443 444.post-series .post-series-title { 445 font-weight: 600; 446 font-size:15px!important; 447} 448 449.global-footer__icon-link { 450 display: inline-block !important; 451 -webkit-transition: 0.1s cubic-bezier(0.39, 0.575, 0.565, 1)!important; 452 transition: 0.1s cubic-bezier(0.39, 0.575, 0.565, 1)!important; 453 -webkit-transition-property: opacity, -webkit-transform!important; 454 transition-property: opacity, -webkit-transform!important; 455 transition-property: opacity, transform!important; 456 transition-property: opacity, transform, -webkit-transform!important; 457 padding :0px 5px 0px 5px; 458} 459 460.global-footer-social__icon { 461 display: inline-block; 462 height: 35px; 463 width: 35px; 464} 465 466.footer-widgets .textwidget p { 467 font-size:14px!important; 468 padding: 0px!important; 469 margin: 0px!important; 470} 471 472.footer-widgets h3{ 473 text-align:center; 474} 475 476#Prism 477pre[data-title]::before { 478 font-size: 15px; 479 content: attr(data-title); 480 color: white; 481 position: absolute; 482 top: 0; 483 left: 0; 484 width: 100%; 485 background: #696969; 486 text-indent: 15px; 487 line-height: 25px; 488 font-weight: bold; 489 height:25px!important; 490} </style> 491
491<script type="text/javascript"> 492 jQuery(document).delegate('.gg_linked_img', 'click', function() { 493 var link = jQuery(this).data('gg-link'); 494 window.open(link ,'_top'); 495 }); 496 </script>
496 497 498
498<script type="text/javascript"> 499 gg_masonry_min_w = 150; 500 gg_phosostr_min_w = 120; 501 gg_coll_min_w = 200; 502 503 gg_use_deeplink = true; 504 gg_back_to_gall_scroll = false; 505 </script>
505 506 507
507<script type="text/javascript"> 508 // global vars 509 gg_galleria_toggle_info = false; 510 gg_galleria_fx = 'fadeslide'; 511 gg_galleria_fx_time = 400; 512 gg_galleria_img_crop = false; 513 gg_galleria_autoplay = false; 514 gg_galleria_interval = 3000; 515 gg_delayed_fx = true; 516 </script>
516 517 </head> 518 519<body class="tuto-template-default single single-tuto postid-1735 wp-custom-logo mkb-desktop mkb-single mkb-version-1-4-6 has-ftoc"> 520 <div id="page" class="hfeed site"> 521 <header id="masthead" role="banner"> 522 <nav class="navbar lh-nav-bg-transform navbar-default navbar-fixed-top navbar-left" role="navigation"> 523 <!-- Brand and toggle get grouped for better mobile display --> 524 <div class="container" id="navigation_menu"> 525 <div class="navbar-header"> 526 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> 527 <span class="sr-only">Toggle Navigation</span> 528 <span class="icon-bar"></span> 529 <span class="icon-bar"></span> 530 <span class="icon-bar"></span> 531 </button> 532 <a href="https://www.drgeek.fr/"> 533 <a href="https://www.drgeek.fr/" class="custom-logo-link" rel="home" itemprop="url"><img width="148" height="45" src="https://www.drgeek.fr/wp-content/uploads/2017/05/DrGeek-NB-45.png" class="custom-logo" alt="DrGeek.fr" itemprop="logo" /></a> </a> 534 </div> 535 <div class="collapse navbar-collapse navbar-ex1-collapse"><ul id="menu-barre-principale" class="nav navbar-nav"><li id="menu-item-1094" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-1094"><a title="Accueil" href="https://www.drgeek.fr">Accueil</a></li> 536<li id="menu-item-1136" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1136"><a title="Tutoriels" href="https://www.drgeek.fr/tutoriels/">Tutoriels</a></li> 537<li id="menu-item-1095" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1095"><a title="à propos" href="https://www.drgeek.fr/a-propos/">à propos</a></li> 538</ul></div> 539 </div><!--#container--> 540 </nav> 541 542 </header> 543 544 <div id="content" class="site-content"> 545 <div class="container"> 546 <div class="row"> 547 <div id="primary" class="col-md-9 content-area"> 548 <main id="main" role="main"> 549 550 551 552<article id="post-1735" class="post-content post-1735 tuto type-tuto status-publish has-post-thumbnail hentry tutocat-serveur-securise tutotag-bullseye tutotag-debian tutotag-linux tutotag-proxmox post-ftoc"> 553 554 555 <header class="entry-header"> 556 557 <span class="screen-reader-text">Etape 1 (V1) – Installation – Secure Boot EFI & ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local)</span> 558 559 560 561 562 563 <h1 class="entry-title">Etape 1 (V1) – Installation – Secure Boot EFI & ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local)</h1> 564 <div class="mkb-breadcrumbs"> 565 <div class="mkb-breadcrumbs__gradient"></div> 566 <div class="mkb-breadcrumbs__pattern"></div> 567 <span 568 class="mkb-breadcrumbs__label"> 569 Vous êtes ici : </span> 570 <ul class="mkb-breadcrumbs__list"> 571 <li> 572 <a href="https://www.drgeek.fr/tutoriels/"> 573 Tutoriels </a> 574 <i class="mkb-breadcrumbs-icon fa fa-caret-right"></i> 575 </li> 576 <li> 577 <a href="https://www.drgeek.fr/tutoriels/serveur-securise/"> 578 Serveur sécurisé </a> 579 <i class="mkb-breadcrumbs-icon fa fa-caret-right"></i> 580 </li> 581 <li> 582 Etape 1 (V1) – Installation – Secure Boot EFI & ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local) </li> 583 </ul> 584 </div> 585 586</header><!-- .entry-header --> 587 588<div class="entry-content"> 589 <div id="ftwp-postcontent-start"></div> 590<p><span id="more-1735"></span></p> 591<section class="post-series"><div class="post-series-title">Article 2/12 de la série suivante :</div><ul class="post-series-list"><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/serveur-intro/">Introduction</a></span></li><li class="post-series-item-current post-series-item"><span class="post-series-item-title">
591Etape 1 (V1) – Installation – Secure Boot EFI & ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local)</span></li><li class="post-series-item-future post-series-item"><span class="post-series-item-title">Prochainement: Etape 1 (V2) – Installation – Disque crypté LUKS RAID & Debian Bullseye avec Proxmox</span></li><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/etape-1a-installation-zfs-native-encryption-debian-bullseye-proxmox/">Etape 1 (V1) – Installation – ZFS Native Encryption & Debian Bullseye avec Proxmox</a></span></li><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/serveur-2-firewall-ipv4/">Etape 2 – Le firewall IPv4 : Shorewall</a></span></li><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/serveur-3-firewall-ipv6/">Etape 3 – Le firewall IPv6 : Shorewall6</a></span></li><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/serveur-4-dhcp/">Etape 4 – Le serveur DHCP : isc-dhcp-server</a></span></li><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/serveur-5-dns/">Etape 5 – Le serveur DNS : Bind9</a></span></li><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/etape-6-base-de-donnees-mariadb/">Etape 6 – La base de données : MariaDB</a></span></li><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/etape-7-serveur-web-nginx/">Etape 7 – Le serveur WEB : Nginx & SSL (Let’s Encrypt)</a></span></li><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/etape-8-le-partage-de-fichier-samba/">Etape 8 – Le partage de fichier : SAMBA (Compatible Time Machine)</a></span></li><li class="post-series-item"><span class="post-series-item-title"><a href="https://www.drgeek.fr/tutoriels/article/etape-9-le-serveur-de-mail-postfix-dovecot/">Etape 9 â Le serveur de MAIL : Postfix / Dovecot / Rspamd</a></span></li></ul></section> 592<h3 id="ftoc-heading-1" class="ftwp-heading">0. Mises à jour</h3> 593<ul> 594<li><strong>11/11/2017</strong> : Version de base</li> 595<li><strong>21/05/2022</strong> : Actualisation pour Debian 11 (testé sur un serveur HP ProLiant DL180 Gen9)</li> 596<li><strong>25/02/2025</strong> : Actualisation pour Debian 12 (Bookworm) (toujours sur un serveur HP ProLiant DL180 Gen9), nombreuses corrections d’erreurs ou imprécisions.</li> 597</ul> 598<h3 id="ftoc-heading-2" class="ftwp-heading">1. Introduction</h3> 599<p>Nous allons voir ici comment installer proxmox sur un serveur local (donc inutile de crypter la partition vous savez que le matériel ne peut être utilisé que par vous).</p> 600<p>Pour sécuriser les données, je vous propose d’utiliser le système de fichier ZFS, en partant du principe que vous avez 2 disques de taille identique que vous souhaitez utiliser comme disque système.</p> 601<p>ZFS est un système de fichier initialement conçu par Sun pour Solaris. Il est utilisé par défaut dans FreeBSD et surtout FreeNAS.</p> 602<p>L’avantage de ce système de fichier c’est qu’il permets de faire de la redondance de fichier (comme le RAID), avec un système de contrôle d’intégrité des fichiers.</p> 603<p>Cette page est largement inspirée de :<br /> 604– <a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Bookworm%20Root%20on%20ZFS.html" rel="noopener" target="_blank">Debian Bookworm Root on ZFS</a><br /> 605– <a href="https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_12_Bookworm" rel="noopener" target="_blank">Install Proxmox VE on Debian 12 Bookworm</a></p> 606<h3 id="ftoc-heading-3" class="ftwp-heading">2 ZFS on Debian – Prérequis</h3> 607<h4 id="ftoc-heading-4" class="ftwp-heading">2.1 Debian Live</h4> 608<p>Par défaut l’installateur de Debian ne prends pas en charge ZFS, il faudra donc passer par <
608a href="https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/" rel="noopener" target="_blank">un live cd</a>.</p> 609<p>Vous pouvez prendre n’importe quelle version, en fonction de vos habitudes (KDE, Gnome…), cela n’a aucune incidence pour la suite…</p> 610<h4 id="ftoc-heading-5" class="ftwp-heading">2.2 Matériel</h4> 611<p>ZFS peut théoriquement fonctionner sur n’importe quel type de hardware mais il est recommandé d’avoir de la RAM compatible ECC (mais ce n’est pas consensuel la preuve sur <a href="http://jrs-s.net/2015/02/03/will-zfs-and-non-ecc-ram-kill-your-data/" rel="noopener" target="_blank">ce site</a>)</p> 612<h3 id="ftoc-heading-6" class="ftwp-heading">3. Préparation de lâenvironnement dâinstallation</h3> 613<h4 id="ftoc-heading-7" class="ftwp-heading">3.1 Accès SSH et installations des packages</h4> 614<ul> 615<li><strong>Booter en EFI la version live</strong> (difficile de décrire exactement la procédure, mais la plupart du temps il s’agit d’un réglage système et bien veiller à démarrer dans ce mode) 616 </li> 617</ul> 618<ul> 619<li>Installer le serveur SSH (par le biais d’un terminal ou sur un écran secondaire en tapant CTRL+ALT+F2) :</li> 620</ul> 621<pre class="terminal command-line" data-user="user" data-host="debian"><code class="language-markup">sudo -s</code></pre> 622<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt update 623apt install --yes openssh-server 624sed -i "s/#PasswordAuthentication yes/PasswordAuthentication yes/g" /etc/ssh/sshd_config 625systemctl restart ssh</code></pre> 626<ul> 627<li>Connexion en SSH depuis autre ordinateur (faire <code class="terminal language-markup">ip -a</code> sur le serveur pour connaitre l’IP si non connue). Le mot de passe est « <strong>live</strong> » : 628 </li> 629</ul> 630<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">ssh -l user 123.123.123.123</code></pre> 631<ul> 632<li>On installe et charge le module ZFS :</li> 633</ul> 634<pre class="terminal command-line" data-user="user" data-host="debian"><code class="language-markup">sudo -s</code></pre> 635<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">sed -i "s/bookworm main non-free-firmware/bookworm main contrib non-free non-free-firmware/g" /etc/apt/sources.list 636apt update 637echo "zfs-dkms zfs-dkms/note-incompatible-licenses note true" | sudo debconf-set-selections 638apt install --yes debootstrap gdisk zfsutils-linux</code></pre> 639<h4 id="ftoc-heading-8" class="ftwp-heading">3.2 Formatage des disques systèmes</h4> 640<ul> 641<li>Dans les lignes qui suivent il faut remplacer <span style="background: #FFFF00; color: #000000; font-weight: bold;"><b>scsi-SATA_disk*</b></span> par les disques adaptés (faire un <code class="terminal language-markup">ls -l /dev/disk/by-id/</code>) pour les identifier.</li> 642</ul> 643<ul> 644<li>On enregistre 2 variables qui servirons par la suite</li> 645</ul> 646<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">DISK1=/dev/disk/by-id/<mark>scsi-SATA_disk1</mark> 647DISK2=/dev/disk/by-id/<mark>scsi-SATA_disk2</mark></code></pre> 648<div class="mkb-shortcode-container"> <div class="mkb-warning"> 649 <div class="mkb-warning__icon"> 650 <i class="fa fa-lg fa-exclamation-triangle"></i> 651 </div> 652 <div class="mkb-warning__content"> 653 Si les disques étaient déjà utilisés en RAID Logiciel (<strong>attention ici ça touche tous les disques présents !</strong>):</p> 654<pre class="terminal command-line"><code class="language-markup">mdadm --stop /dev/md* 655mdadm --zero-superblock --force ${DISK1}* 656mdadm --zero-superblock --force ${DISK2}*</code></pre> 657<p>Si les disques étaient déjà utilisés en ZFS :</p> 658<pre class="terminal command-line"><code class="language-markup">wipefs -a $DISK1 659wipefs -a $DISK2</code></pre> 660<p> </div> 661 </div> 662 </div> 663<ul> 664<li>On efface les 2 disques :</li> 665</ul> 666<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">sgdisk --zap-all $DISK1 667sgdisk --zap-all $DISK2</code></pre> 668<ul> 669<li>Puis on partitionne CHAQUE disque :</li> 670</ul> 671<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">sgdisk -n1:1M:+512M -t1:EF00 -c1:"EFI Partition - Disk 1" -n2:0:+1G -t2:BF01 -c2:"ZFS Boot Pool - Disk 1" -n3:0:0 -t3:BF01 -c3:"ZFS Root Pool - Disk 1" -p $DISK1 672sgdisk -n1:1M:+512M -t1:EF00 -c1:"EFI Partition - Disk 2" -n2:0:+1G -t2:BF01 -c2:"ZFS Boot Pool - Disk 2" -n3:0:0 -t3:BF01 -c3:"ZFS Root Pool - Disk 2" -p $DISK2</code></pre> 673<div class="mkb-shortcode-container"> <div class="mkb-tip"> 674 <div class="mkb-tip__icon"> 675 <i class="fa fa-lg fa-lightbulb-o"></i> 676 </div> 677 <div class="mkb-tip__content"> 678 <strong>Explications des paramètres </strong>:<br /> 679<strong>-n1:1M:+512M -t1:EF00:</strong> nouvelle partition EFI de 512Mo commençant à 1Mo, le fait de laisser 1Mo permet d’assurer l’alignement de la partition ce qui optimise les performances notamment sur un SSD.<br /> 680<strong>-n2:0:+1G -t2:BF01:</strong> nouvelle partition pour le zfs pool qui servira pour la partition /boot<br /> 681<strong>-n3:0:0 -t3:BF00</strong> nouvelle partition pour le zfs pool de la taille restante du disque<br /> 682<strong>-p :</strong> Affiche le détail<br /> 683 </div> 684 </div> 685 </div> 686<h4 id="ftoc-heading-9" class="ftwp-heading">
6863.3 Création des pools ZFS</h4> 687<ul> 688<li>On crée tout d’abord le pool ZFS correspondant à la partition /boot :</li> 689</ul> 690<pre class="terminal command-line" data-user="root" data-host="debian" data-output="2-20"><code class="language-markup">zpool create \ 691 -o ashift=12 \ 692 -o autotrim=on \ 693 -o compatibility=grub2 \ 694 -o cachefile=/etc/zfs/zpool.cache \ 695 -O devices=off \ 696 -O acltype=posixacl -O xattr=sa \ 697 -O compression=lz4 \ 698 -O normalization=formD \ 699 -O relatime=on \ 700 -O canmount=off -O mountpoint=/boot -R /newdebian \ 701 bpool mirror ${DISK1}-part2 ${DISK2}-part2</code></pre> 702<div class="mkb-shortcode-container"> <div class="mkb-tip"> 703 <div class="mkb-tip__icon"> 704 <i class="fa fa-lg fa-lightbulb-o"></i> 705 </div> 706 <div class="mkb-tip__content"> 707 <strong>Explications des paramètres </strong>:<br /> 708<strong>– ashift=12 :</strong> Définit la taille du secteur logique à 2^12 octets, soit 4096 octets (4 Kb). Cela garantit une performance optimale avec les disques modernes qui utilisent des secteurs physiques de 4 Kb. â<br /> 709<strong>– autotrim=on :</strong> Active la fonction TRIM automatique, contribuant ainsi à maintenir les performances du SSD au fil du temps. â<br /> 710<strong>– compatibility=grub2 :</strong> Active uniquement les fonctionnalités de ZFS prises en charge par ce chargeur d’amorçage.<strong>– cachefile=/etc/zfs/zpool.cache :</strong> Chemin du fichier de cache où les informations de configuration du pool seront stockées. Ce fichier est utilisé pour accélérer l’importation du pool lors des démarrages ultérieurs.â<br /> 711<strong>– devices=off :</strong> Désactive l’accès aux périphériques dans le pool, empêchant l’utilisation de périphériques spéciaux comme les périphériques en boucle (loop devices) ou les périphériques bruts, ce qui peut améliorer la sécurité.â<br /> 712<strong>– acltype=posixacl :</strong> Active les listes de contrôle d’accès POSIX, permettant une gestion fine des permissions sur les fichiers et les répertoires.<br /> 713<strong>– xattr=sa :</strong> Stocke les attributs étendus (extended attributes) dans les attributs système, ce qui améliore les performances lors de l’utilisation intensive des attributs étendus, notamment pour les ACL.<br /> 714<strong>– compression=lz4 :</strong> Active la compression LZ4, une méthode de compression rapide et efficace qui peut améliorer les performances en réduisant la quantité de données écrites sur le disque. â<br /> 715<strong>– normalization=formD :</strong> Normalise les noms de fichiers en utilisant la forme de normalisation Unicode D (décomposition canonique), ce qui peut aider à éviter des problèmes avec les noms de fichiers qui apparaissent identiques mais sont encodés différemment. <strong>– relatime=on :</strong> Active l’option relatime pour la gestion des horodatages d’accès ce qui réduit les écritures disque inutiles tout en maintenant la compatibilité avec les applications qui nécessitent l’atime. â<br /> 716<strong>– canmount=off :</strong> Empêche le montage automatique de ce dataset.<br /> 717<strong>– mountpoint=/boot :</strong> Spécifie que le point de montage de ce dataset sera /boot.â<br /> 718<strong>– -R /newdebian :</strong> Définit le répertoire racine temporaire pour le montage du pool. Tous les points de montage seront relatifs à ce répertoire lors de l’installation<br /> 719<strong>– bpool :</strong> Nom du pool ZFS à créer.<br /> 720 </div> 721 </div> 722 </div> 723<p>Si vous avez des messages d’erreur comme quoi les disques sont occupés, il faut redémarrer la machine.</p> 724<ul> 725<li>On crée enfin le pool ZFS correspondant à la partition / (hormis /boot) :</li> 726</ul> 727<pre class="terminal command-line" data-user="root" data-host="debian" data-output="2-20"><code class="language-markup">zpool create \ 728 -o ashift=12 \ 729 -o autotrim=on \ 730 -O acltype=posixacl -O xattr=sa -O dnodesize=auto \ 731 -O compression=lz4 \ 732 -O normalization=formD \ 733 -O relatime=on \ 734 -O canmount=off -O mountpoint=/ -R /newdebian \ 735 rpool mirror ${DISK1}-part3 ${DISK2}-part3</code></pre> 736<h4 id="ftoc-heading-10" class="ftwp-heading">3.4 Création des datasets</h4> 737<p>Par défaut un pool contient un dataset, mais il est possible de découper un pool en plusieurs datasets qui seront visualisés par le système comme des « disques » (mais totalement géré par ZFS, pas de passage par fstab par exemple).</p> 738<p>Le concept est extrêmement fort car il permets par exemple :<br /> 739– De faire des snapshots de datasets (des points de restauration et de restaurer à ce moment exactement)<br /> 740– De limiter un dataset en espace disque.<br /> 741– De faire plusieurs datasets de boot par exemple et de switcher d’
741un dataset à l’autre pour booter le système (et ne pas perdre de donner)<br /> 742– De créer des sous-datasets (avec héritage des propriétés)<br /> 743– Et bien plus…</p> 744<ul> 745<li>On commence par créer le dataset <strong>ROOT</strong> qui va servir à contenir les sous-datasets système :</li> 746</ul> 747<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zfs create -o canmount=off -o mountpoint=none rpool/ROOT 748zfs create -o canmount=noauto -o mountpoint=/ rpool/ROOT/debian 749zfs mount rpool/ROOT/debian</code></pre> 750<ul> 751<li>Puis on crée le dataset <strong>BOOT</strong> :</li> 752</ul> 753<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zfs create -o canmount=off -o mountpoint=none bpool/BOOT 754zfs create -o mountpoint=/boot bpool/BOOT/debian</code></pre> 755<ul> 756<li>On crée un dataset <strong>home</strong> dans lequel on va mettre tous les répertoires des users y compris celui du root :</li> 757</ul> 758<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zfs create -o setuid=off rpool/home 759zfs create -o mountpoint=/root rpool/home/root 760chmod 700 /newdebian/root</code></pre> 761<ul> 762<li>On crée un dataset <strong>var</strong> avec les sous-datasets <strong>log</strong>,<strong>cache</strong>,<strong>tmp</strong> que l’on exclura des snapshots</li> 763</ul> 764<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zfs create -o canmount=off rpool/var 765zfs create -o canmount=off rpool/var/lib 766zfs create rpool/var/log 767zfs create rpool/var/spool 768zfs create -o com.sun:auto-snapshot=false rpool/var/cache 769zfs create -o com.sun:auto-snapshot=false rpool/var/tmp 770chmod 1777 /newdebian/var/tmp</code></pre> 771<ul> 772<li>On créée un tmpfs utile par la suite :</li> 773</ul> 774<pre class="terminal command-line" data-user="root" data-host="isorescue"><code class="language-markup">mkdir /newdebian/run 775mount -t tmpfs tmpfs /newdebian/run 776mkdir /newdebian/run/lock</code></pre> 777<h3 id="ftoc-heading-11" class="ftwp-heading">4. Installation du système de base</h3> 778<ul> 779<li>On installe une debian de base (la commande peut mettre plusieurs minutes à s’exécuter):</li> 780</ul> 781<pre class="terminal command-line" data-user="root" data-host="debian" data-output="2-6"><code class="language-markup">debootstrap --arch amd64 bookworm /newdebian http://ftp.fr.debian.org/debian 782... 783I: Configuring ifupdown... 784I: Configuring tasksel-data... 785I: Configuring tasksel... 786I: Configuring libc-bin... 787I: Base system installed successfully.</code></pre> 788<ul> 789<li>On installe copie le <strong>zpool.cache</strong></li> 790</ul> 791<pre class="terminal command-line" data-user="root" data-host="debian" data-output="2-6"><code class="language-markup">mkdir /newdebian/etc/zfs 792cp /etc/zfs/zpool.cache /newdebian/etc/zfs/</code></pre> 793<h3 id="ftoc-heading-12" class="ftwp-heading">5. Configuration du système de base</h3> 794<h4 id="ftoc-heading-13" class="ftwp-heading">5.1 Nom de la machine</h4> 795<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">hostname <mark>MonServeur</mark> 796hostname > /newdebian/etc/hostname</code></pre> 797<h4 id="ftoc-heading-14" class="ftwp-heading">5.2 Interfaces réseaux</h4> 798<ul> 799<li>On recherche le nom des interfaces réseaux (ici pour l’exemple <span style="background: #FFFF00; color: #000000; font-weight: bold;"><b>eno1</b></span>):</li> 800</ul> 801<pre class="terminal command-line" data-user="root" data-host="debian" data-output="2-13"><code class="language-markup">ip addr show 8021: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 803 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 804 inet 127.0.0.1/8 scope host lo 805 valid_lft forever preferred_lft forever 806 inet6 ::1/128 scope host 807 valid_lft forever preferred_lft forever 8082: <mark>eno1</mark>: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 809 link/ether 00:1a:1b:1c:1d:1e brd ff:ff:ff:ff:ff:ff 810 inet 123.123.123.123/24 brd 123.123.123.255 scope global dynamic eno1 811 valid_lft 1569sec preferred_lft 1569sec 812 inet6 fe80::abcd/64 scope link 813 valid_lft forever preferred_lft forever</code></pre> 814<ul> 815<li>On crée les fichiers de configuration réseau (utilisé la commande <code class="terminal language-markup">nano</code>), à adapter selon votre environnement réseau :</li> 816</ul> 817<pre class="line-numbers" data-title="Fichier : /newdebian/etc/network/interfaces.d/eno1 (mode DHCP)"><code class="language-bash">auto <mark>eno1</mark> 818iface <mark>eno1</mark> inet dhcp</code></pre> 819<pre class="line-numbers" data-title="Fichier : /newdebian/etc/network/interfaces.d/eno1 (mode IP FIXE)"><code class="language-bash">auto <mark>eno1</mark> 820iface <mark>eno1</mark> inet static 821address 192.168.100.1 822netmask 255.255.255.0 823broadcast 192.168.100.255 824gateway 192.168.100.254</code></pre> 825<ul> 826<li>S’il s’agit d’un serveur local à 2 interfaces (une vers le réseau externe, l’autre vers le réseau local :</li> 827</ul> 828<pre class="line-numbers" data-title="Fichier : /newdebian/etc/network/interfaces.d/eno2 (interface secondaire)"><code class="language-bash">auto <mark>eno2</mark> 829iface <mark>eno2</mark> inet static 830address 192.168.0.1 831netmask 255.255.255.0</code></pre> 832<div class="mkb-shortcode-container"> <div class="mkb-tip"> 833 <div class="mkb-tip__icon"> 834 <i class="fa fa-lg fa-lightbulb-o"></i> 835 </div> 836 <div class="mkb-tip__content"> 837 Attention néanmoins une fois le système booté, le nom des interfaces peut changer. </div> 838 </div> 839 </div> 840<h4 id="ftoc-heading-15" class="ftwp-heading">5.3 Chrooter dans le nouveau système</h4> 841<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">mount --make-private --rbind /dev /newdebian/dev 842mount --make-private --rbind /proc /newdebian/proc 843mount --make-private --rbind /sys /newdebian/sys 844chroot /newdebian /bin/bash --login</code></pre> 845<ul> 846<li>On monte /tmp dans la ram (TMPFS) :</li> 847</ul> 848<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">cp /usr/share/systemd/tmp.mount /etc/systemd/system/ 849systemctl enable tmp.mount</code></pre> 850<ul> 851<li>On modifie le mot de passe root (ne pas oublier cette étape sinon vous allez vous retrouver dehors) :</li> 852</ul> 853<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">passwd</code></pre> 854<h4 id="ftoc-heading-16" class="ftwp-heading">5.4 Apt</h4> 855<ul> 856<li>On modifie les sources :</li> 857</ul> 858<pre class="line-numbers" data-title="Fichier : /etc/apt/sources.list"><code class="language-bash"># Debian Bookworm - Depot officiel 859deb http://ftp.fr.debian.org/debian bookworm main non-free-firmware contrib non-free 860 861# Debian Bookworm - Updates 862deb http://ftp.fr.debian.org/debian bookworm-updates main non-free-firmware contrib non-free 863 864# Debian Bookworm - Security updates 865deb http://security.debian.org bookworm-security main non-free-firmware contrib non-free</code></pre> 866<ul> 867<li>On actualise les sources et on met à jour :</li> 868</ul> 869<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt update 870apt upgrade</code></pre> 871<ul> 872<li>On installe aptitude (optionnel mais bien pratique) :</li> 873</ul> 874<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install --yes aptitude</code></pre> 875<h4 id="ftoc-heading-17" class="ftwp-heading">5.5 Locales</h4> 876<ul> 877<li>On installe Locales :</li> 878</ul> 879<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install --yes locales 880dpkg-reconfigure locales</code></pre> 881<ul> 882<li>On sélectionne <strong>en_US.UTF-8</strong> & <strong>fr_FR.UTF-8</strong> avec <strong>fr_FR.UTF-8</strong> par défaut :</li> 883</ul> 884<p><img src="https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_locales.png" alt="" width="796" height="496" class="aligncenter size-full wp-image-2807" srcset="https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_locales.png 796w, https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_locales-300x187.png 300w, https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_locales-768x479.png 768w, https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_locales-433x270.png 433w" sizes="(max-width: 796px) 100v
884w, 796px" /></p> 885<h4 id="ftoc-heading-18" class="ftwp-heading">5.6 Console-setup</h4> 886<ul> 887<li>On installe Console-setup :</li> 888</ul> 889<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install --yes console-setup</code></pre> 890<ul> 891<li>On sélectionne <strong>French</strong> :</li> 892</ul> 893<p><img src="https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-Console-Setup-1024x676.png" alt="" width="640" height="423" class="aligncenter size-large wp-image-2996" srcset="https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-Console-Setup-1024x676.png 1024w, https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-Console-Setup-300x198.png 300w, https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-Console-Setup-768x507.png 768w, https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-Console-Setup-409x270.png 409w" sizes="(max-width: 640px) 100vw, 640px" /></p> 894<h4 id="ftoc-heading-19" class="ftwp-heading">5.7 Tzdata</h4> 895<ul> 896<li>On lance la reconfiguration du paquet :</li> 897</ul> 898<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">dpkg-reconfigure tzdata</code></pre> 899<ul> 900<li>Puis on sélectionne <strong>Europe</strong>, puis <strong>Paris</strong> :</li> 901</ul> 902<p><img src="https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_tzdata.png" alt="" width="793" height="493" class="aligncenter size-full wp-image-2809" srcset="https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_tzdata.png 793w, https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_tzdata-300x187.png 300w, https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_tzdata-768x477.png 768w, https://www.drgeek.fr/wp-content/uploads/2017/11/new_select_tzdata-434x270.png 434w" sizes="(max-width: 793px) 100vw, 793px" /></p> 903<ul> 904<li>Un petit <code class="terminal language-markup">screen</code> (<a href="https://www.drgeek.fr/tutoriels/article/debian-memo-commandes/#ftoc-heading-31" rel="noopener" target="_blank">cf l’article sur le mémo des commandes</a>) </li> 905</ul> 906<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install screen 907screen</code></pre> 908<div class="mkb-shortcode-container"> <div class="mkb-tip"> 909 <div class="mkb-tip__icon"> 910 <i class="fa fa-lg fa-lightbulb-o"></i> 911 </div> 912 <div class="mkb-tip__content"> 913 Il suffit de faire un <code class="terminal language-markup">screen -r</code> depuis une nouvelle session SSH en cas de deconnexion pour revenir au même endroit ! </div> 914 </div> 915 </div> 916<h4 id="ftoc-heading-20" class="ftwp-heading">5.8 SSH</h4> 917<ul> 918<li>On installe le serveur SSH :</li> 919</ul> 920<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install --yes openssh-server</code></pre> 921<ul> 922<li>Temporairement on autorise le root à s’authentifier (nous modifierons la configuration SSH dans l’étape suivante) :</li> 923</ul> 924<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config</code></pre> 925<h4 id="ftoc-heading-21" class="ftwp-heading">5.9 Installation des packages nécessaires au boot</h4> 926<ul> 927<li>On lance la commande suivante :</li> 928</ul> 929<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">echo "zfs-dkms zfs-dkms/note-incompatible-licenses note true" | sudo debconf-set-selections 930apt install --yes dpkg-dev linux-headers-amd64 linux-image-amd64 zfs-initramfs 931echo REMAKE_INITRD=yes > /etc/dkms/zfs.conf</code></pre> 932<ul> 933<li>On configure la partition EFI :</li> 934</ul> 935<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install --yes dosfstools 936mkdosfs -F 32 -n EFI /dev/disk/by-id/<mark>scsi-SATA_disk1</mark>-part1 937mkdosfs -F 32 -n EFI /dev/disk/by-id/<mark>scsi-SATA_disk2</mark>-part1 938echo PARTUUID=$(blkid -s PARTUUID -o value /dev/disk/by-id/<mark>scsi-SATA_disk1</mark>-part1) /boot/efi vfat defaults 0 0 >> /etc/fstab 939echo "#"PARTUUID=$(blkid -s PARTUUID -o value /dev/disk/by-id/<mark>scsi-SATA_disk2</mark>-part1) /boot/efi vfat defaults 0 0 >> /etc/fstab 940mkdir /boot/efi 941mount /boot/efi</code></pre> 942<ul> 943<li>On installe Grub :</li> 944</ul> 945<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install --yes grub-efi-amd64 shim-signed</code></pre> 946<ul> 947<li>On teste (vous devez obtenir en retour <code class="terminal language-markup">zfs</code>) :</li> 948</ul> 949<pre class="terminal command-line" data-user="root" data-host="debian" data-output="2"><code class="language-markup">grub-probe /boot 950zfs</code></pre> 951<ul> 952<li>On met à jour l’initramfs (qui a pour seul et unique but de monter le système de fic
952hier racine) :</li> 953</ul> 954<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">update-initramfs -u -k all</code></pre> 955<ul> 956<li>On désinstalle os-prober (utile uniquement en cas de double boot) :</li> 957</ul> 958<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt purge --yes os-prober</code></pre> 959<ul> 960<li>On configure grub pour aller chercher le bon pool ZFS :</li> 961</ul> 962<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="root=ZFS=rpool\/ROOT\/debian"/g' /etc/default/grub</code></pre> 963<ul> 964<li>On met à jour la configuration de Grub :</li> 965</ul> 966<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">update-grub</code></pre> 967<ul> 968<li>On l’installe en mode EFI :</li> 969</ul> 970<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --no-floppy</code></pre> 971<div class="mkb-shortcode-container"> <div class="mkb-tip"> 972 <div class="mkb-tip__icon"> 973 <i class="fa fa-lg fa-lightbulb-o"></i> 974 </div> 975 <div class="mkb-tip__content"> 976 <strong>Si vous avez l’erreur </strong>:</p> 977<pre class="terminal command-line"><code class="language-markup">grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --no-floppy 978Could not prepare Boot variable: No space left on device</code></pre> 979<p>C’est que la NVRAM est pleine, il faut donc effacer des entrées EFI. Pour cela on les identifie avec la commande suivante :</p> 980<pre class="terminal command-line"><code class="language-markup">efibootmgr 981BootCurrent: 0001 982Timeout: 0 seconds 983BootOrder: 0002,2001,0001,2002,2003 984Boot0000* ManjaLinux 985Boot0001* Debian 986Boot0002* rEFInd Boot Manager 987Boot2001* EFI USB Device 988Boot2002* EFI DVD/CDROM</code></pre> 989<p>Et on efface comme ceci :</p> 990<pre class="terminal command-line"><code class="language-markup">efibootmgr -Bb 0000</code></pre> 991<p> </div> 992 </div> 993 </div> 994<ul> 995<li>Et on verifie que le module ZFS est bien installé dans Grub :</li> 996</ul> 997<pre class="terminal command-line" data-user="root" data-host="debian" data-output="2"><code class="language-markup">ls /boot/grub/*/zfs.mod 998/boot/grub/x86_64-efi/zfs.mod</code></pre> 999<h4 id="ftoc-heading-22" class="ftwp-heading">5.10 Import automatique de bpool</h4> 1000<ul> 1001<li>Apriori il est recommandé de créer un service qui va importer automatiquement bpool </li> 1002</ul> 1003<ul> 1004<li>On crée le fichier <code class="language-markup">/etc/systemd/system/zfs-import-bpool.service</code> :</li> 1005</ul> 1006<pre class="line-numbers" data-title="Fichier : /etc/systemd/system/zfs-import-bpool.service"><code class="language-bash">[Unit] 1007DefaultDependencies=no 1008Before=zfs-import-scan.service 1009Before=zfs-import-cache.service 1010 1011[Service] 1012Type=oneshot 1013RemainAfterExit=yes 1014ExecStart=/sbin/zpool import -N -o cachefile=none bpool 1015# Work-around to preserve zpool cache: 1016ExecStartPre=-/bin/mv /etc/zfs/zpool.cache /etc/zfs/preboot_zpool.cache 1017ExecStartPost=-/bin/mv /etc/zfs/preboot_zpool.cache /etc/zfs/zpool.cache 1018 1019[Install] 1020WantedBy=zfs-import.target</code></pre> 1021<ul> 1022<li>On execute enfin la commande suivante pour activer le service :</li> 1023</ul> 1024<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">systemctl enable zfs-import-bpool.service</code></pre> 1025<h4 id="ftoc-heading-23" class="ftwp-heading">5.11 Configuration des montages automatique des partitions.</h4> 1026<ul> 1027<li>On commence par lancer les commandes suivante :</li> 1028</ul> 1029<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">sed -i "s/ZED_SYSLOG_SUBCLASS_EXCLUDE/#ZED_SYSLOG_SUBCLASS_EXCLUDE/g" /etc/zfs/zed.d/zed.rc 1030mkdir /etc/zfs/zfs-list.cache 1031touch /etc/zfs/zfs-list.cache/bpool 1032touch /etc/zfs/zfs-list.cache/rpool 1033zed -F &</code></pre> 1034<ul> 1035<li>On vérifie que les fichiers sont mis à jour :</li> 1036</ul> 1037<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">cat /etc/zfs/zfs-list.cache/bpool 1038cat /etc/zfs/zfs-list.cache/rpool</code></pre> 1039<ul> 1040<li>S’ils sont vides, on redémarre <code class="language-markup">zed</code> :</li> 1041</ul> 1042<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">fg</code></pre> 1043<p><img src="https://www.drgeek.fr/wp-content/uploads/2022/03/images-e1646522394949.jpeg" alt="" width="127" height="40" class="size-full wp-image-2642" style="margin-bottom:0px"/></p> 1044<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zed -F &</code></pre> 1045<ul> 1046<li>Si le fichier est bien alimenté, on ferme <code class="language-markup">zed</code> :</li> 1047</ul> 1048<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">fg</code></pre> 1049<p><img src="https://www.drgeek.fr/wp-content/uploads/2022/03/images-e1646522394949.jpeg" alt="" width="127" height="40" class="size-full wp-image-2642" style="margin-bottom:0px"/></p> 1050<ul> 1051<li>On corrige les chemins en retirant <strong>/newdebian</strong> :</li> 1052</ul> 1053<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">sed -Ei "s|/newdebian/?|/|" /etc/zfs/zfs-list.cache/bpool 1054sed -Ei "s|/newdebian/?|/|" /etc/zfs/zfs-list.cache/rpool</code></pre> 1055<h3 id="ftoc-heading-24" class="ftwp-heading">6. Premier redémarrage</h3> 1056<ul> 1057<li>On fait un premier screenshot des 2 datasets :</li> 1058</ul> 1059<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zfs snapshot bpool/BOOT/debian@install 1060zfs snapshot rpool/ROOT/debian@install</code></pre> 1061<ul> 1062<li>Si screen lancé :</li> 1063</ul> 1064<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">exit</code></pre> 1065<ul> 1066<li>Puis, on quitte tout :</li> 1067</ul> 1068<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">exit 1069mount | grep -v zfs | tac | awk '/\/newdebian/ {print $3}' |xargs -i{} umount -lf {} 1070umount /newdebian/* 1071umount -l /newdebian 1072grep /newdebian /proc/*/mounts | tac| awk '{print $3}' FS="/" | uniq | xargs -i{} kill -9 {} 1073zpool export -a 1074reboot -f</code></pre> 1075<ul> 1076<li>N’oubliez pas de retirer la clé USB ou de démonter l’iso</li> 1077</ul> 1078<h3 id="ftoc-heading-25" class="ftwp-heading">7. Swap</h3> 1079<div class="mkb-shortcode-container"> <div class="mkb-warning"> 1080 <div class="mkb-warning__icon"> 1081 <i class="fa fa-lg fa-exclamation-triangle"></i> 1082 </div> 1083 <div class="mkb-warning__content"> 1084 Assurez vous d’avoir bien <strong>redémarré</strong> la machine ! </div> 1085 </div> 1086 </div> 1087<p>Il existe toujours une question existentielle concernant la taille du swap. Pendant longtemps il était communément admis de dire que le swap faisait 2 fois la taille de la RAM. </p> 1088<p>Aujourd’hui après avoir écumé de nombreux forum je peux vous dire :</p> 1089<p>– Que la taille du SWAP doit être au moins 1 fois la taille de la RAM pour les systèmes qui sont amenés à se mettre en hibernation (mise en veille prolongée), donc <strong>pas le sujet ici</strong>.<br /> 1090– Qu’étant donné la RAM des serveurs actuels (8 / 16 / 32 voire 64 Go), <strong>8 Go semble tout à fait suffisant</strong>.</p> 1091<ul> 1092<li>On crée un zvol (qui sera visible comme un disque dans <code class="language-markup">/dev/zvol/</code>) de 8 Go</li> 1093</ul> 1094<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">zfs create -V 8G -b $(getconf PAGESIZE) -o compression=zle -o logbias=throughput -o sync=always -o primarycache=metadata -o secondarycache=none -o com.sun:auto-snapshot=false rpool/swap</code></pre> 1095<ul> 1096<li>On crée un swap</li> 1097</ul> 1098<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">swapon -av</code></pre> 1099<ul> 1100<li>On active le swap</li> 1101</ul> 1102<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">mkswap -f /dev/zvol/rpool/swap 1103echo /dev/zvol/rpool/swap none swap defaults 0 0 >> /etc/fstab 1104echo RESUME=none > /etc/initramfs-tools/conf.d/resume</code></pre> 1105<h3 id="ftoc-heading-26" class="ftwp-heading">8. Paquets utiles</h3> 1106<p>Voici quelques paquets bien pratique :</p> 1107<ul> 1108<li><strong>apt-transport-https :</strong></li> 1109</ul> 1110<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">apt install --yes apt-transport-https</code></pre> 1111<p>Permet de se connecter en HTTPS aux miroirs APT.</p> 1112<ul> 1113<li><strong>man :</strong></li> 1114</ul> 1115<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">apt install --yes man-db</code></pre> 1116<ul> 1117<li><strong>command-not-found :</strong></li> 1118</ul> 1119<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">apt install --yes command-not-found 1120apt update 1121update-command-not-found</code></pre> 1122<ul> 1123<li><strong>bash-completion :</strong></li> 1124</ul> 1125<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">apt install --yes bash-completion</code></pre> 1126<h3 id="ftoc-heading-27" class="ftwp-heading">9. Installation de Promox</code></h3> 1127<p>Vous avez désormais un debian de base prêt à recevoir la surcouche Proxmox, il faut maintenant configurer cette installation pour pouvoir lancer proxmox</p> 1128<h4 id="ftoc-heading-28" class="ftwp-heading">9.1 Pré-configuration du système</h4> 1129<ul> 1130<li>On crée le fichier <code class="language-markup">/etc/apt/sources.list.d/pve.list</code> :</li> 1131</ul> 1132<pre class="line-numbers" data-title="Fichier : /etc/apt/sources.list.d/pve.list"><code class="language-bash">deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription</code></pre> 1133<ul> 1134<li>On met à jour le fichier <code class="language-markup">/etc/hosts</code> :</li> 1135</ul> 1136<pre class="line-numbers" data-title="Fichier : /etc/hosts"><code class="language-bash"># IPv4 1137127.0.0.1 localhost 1138SERVEUR.MON.IP monserveur monserveur.mondomaine.com 1139 1140# IPv6 1141::1 localhost ip6-localhost ip6-loopback 1142ff02::1 ip6-allnodes 1143ff02::2 ip6-allrouters</code></pre> 1144<ul> 1145<li>On authentifie le serveur Proxmox et on met à jours les dépôts :</li> 1146</ul> 1147<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install --yes wget 1148wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg 1149apt update 1150apt full-upgrade</code></pre> 1151<h4 id="ftoc-heading-29" class="ftwp-heading">9.2 Installation de Proxmox</h4> 1152<ul> 1153<li>On installe le kernel Proxmox :</li> 1154</ul> 1155<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">
1155apt install proxmox-default-kernel</code></pre> 1156<ul> 1157<li>Redémarrez ! :</li> 1158</ul> 1159<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">systemctl reboot</code></pre> 1160<ul> 1161<li>Une fois le redémarrage terminé et que vous vous êtes identifiés de nouveau, lancez l’installation</li> 1162</ul> 1163<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install --yes proxmox-ve postfix open-iscsi chrony</code></pre> 1164<ul> 1165<li>A l’écran mettre : « Pas de configuration »</li> 1166</ul> 1167<p><img src="https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-postfix-configuration-1024x762.png" alt="" width="640" height="476" class="aligncenter size-large wp-image-3019" srcset="https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-postfix-configuration-1024x762.png 1024w, https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-postfix-configuration-300x223.png 300w, https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-postfix-configuration-768x571.png 768w, https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-postfix-configuration-363x270.png 363w, https://www.drgeek.fr/wp-content/uploads/2017/11/Capture-postfix-configuration.png 1555w" sizes="(max-width: 640px) 100vw, 640px" /></p> 1168<h4 id="ftoc-heading-30" class="ftwp-heading">9.3 Configuration du boot pour être compatible ZFS / EFI / Secure boot</h4> 1169<ul> 1170<li>Tout d’abord on démonte la partition /boot/efi</li> 1171</ul> 1172<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">umount /boot/efi</code></pre> 1173<ul> 1174<li>On installe ce qu’il faut pour le secure boot:</li> 1175</ul> 1176<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt install proxmox-secure-boot-support 1177proxmox-boot-tool init /dev/disk/by-id/<mark>scsi-SATA_disk2</mark>-part1 grub 1178proxmox-boot-tool init /dev/disk/by-id/<mark>scsi-SATA_disk1</mark>-part1 grub 1179efibootmgr -c -g -d /dev/disk/by-id/<mark>scsi-SATA_disk2</mark> -p 1 -L "proxmox-2" -l '/EFI/proxmox/shimx64.efi' 1180update-initramfs -u -k all</code></pre> 1181<ul> 1182<li>Puis on clone la partition</li> 1183</ul> 1184<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">dd if=/dev/disk/by-id/<mark>scsi-SATA_disk1</mark>-part1 of=/dev/disk/by-id/<mark>scsi-SATA_disk2</mark>-part1 1185efibootmgr -c -g -d /dev/disk/by-id/<mark>scsi-SATA_disk2</mark> -p 1 -L "proxmox-2" -l '\EFI\proxmox\shimx64.efi'</code></pre> 1186<ul> 1187<li>Et on remonte la partition précédemment démontée</li> 1188</ul> 1189<pre class="terminal command-line" data-user="root" data-host="MonServeur"><code class="language-markup">mount /boot/efi</code></pre> 1190<ul> 1191<li>Retirer le kernel inutile (en fonction des cas et adapter la ver
1191sion au cas où) :</li> 1192</ul> 1193<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt remove linux-image-amd64 'linux-image-6.1*' 1194apt autoremove 1195update-grub</code></pre> 1196<h3 id="ftoc-heading-31" class="ftwp-heading">10. Ajustement de la configuration de Proxmox</h3> 1197<div class="mkb-shortcode-container"> <div class="mkb-warning"> 1198 <div class="mkb-warning__icon"> 1199 <i class="fa fa-lg fa-exclamation-triangle"></i> 1200 </div> 1201 <div class="mkb-warning__content"> 1202 Je ne présente pas le fonctionnement de proxmox, il existe de nombreux tutoriels sur le sujet. Ici il s’agit juste des petites modifications à faire pour revenir une installation de base </div> 1203 </div> 1204 </div> 1205<ul> 1206<li>D’abord, on crée un dataset pour les backups de proxmox :</li> 1207</ul> 1208<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zfs create rpool/proxdata</code></pre> 1209<ul> 1210<li>Entrez dans l’interface proxmox de votre serveur : <strong>https://IP.DU.SERVEUR:8006</strong></code></li> 1211</ul> 1212<ul> 1213<li>Allez dans le menu de gauche dans « <strong>Datacenter</strong>« , puis dans la section « <strong>Storage</strong>« </li> 1214</ul> 1215<ul> 1216<li>Désactivez « <strong>local</strong> » et créez « <strong>proxdata</strong>« . Vous devez avoir ceci :</li> 1217</ul> 1218<p><img src="https://www.drgeek.fr/wp-content/uploads/2018/11/capture_storage.png" alt="" width="1044" height="135" class="aligncenter size-full wp-image-2464" srcset="https://www.drgeek.fr/wp-content/uploads/2018/11/capture_storage.png 1044w, https://www.drgeek.fr/wp-content/uploads/2018/11/capture_storage-300x39.png 300w, https://www.drgeek.fr/wp-content/uploads/2018/11/capture_storage-768x99.png 768w, https://www.drgeek.fr/wp-content/uploads/2018/11/capture_storage-1024x132.png 1024w, https://www.drgeek.fr/wp-content/uploads/2018/11/capture_storage-604x78.png 604w, https://www.drgeek.fr/wp-content/uploads/2018/11/capture_storage-1038x135.png 1038w" sizes="(max-width: 1044px) 100vw, 1044px" /></p> 1219<ul> 1220<li>Un petit nettoyage de snapshot juste pour la fin</li> 1221</ul> 1222<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zfs destroy bpool/BOOT/debian@install 1223zfs destroy rpool/ROOT/debian@install</code></pre> 1224<ul> 1225<li>Et on crée des snapshots de post installation</li> 1226</ul> 1227<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zfs snapshot bpool/BOOT/debian@postinstall 1228zfs snapshot rpool/ROOT/debian@postinstall</code></pre> 1229<ul> 1230<li>Optionnel : installation du dernier micro-code (processeur intel) : </li> 1231</ul> 1232<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/misc/microcode.sh)"</code></pre> 1233<h3 id="ftoc-heading-32" class="ftwp-heading">11. En cas de maintenance</h3> 1234<p>Voici les commandes nécessaires en cas de boot depuis une rescue</p> 1235<ul> 1236<li>D’abord on désactive le secure boot dans le bios</li> 1237</ul> 1238<ul> 1239<li>On réinstalle ssh etc..</li> 1240</ul> 1241<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">apt update 1242apt install -y zfsutils-linux 1243modprobe zfs</code></pre> 1244<p>si vous avez l’erreur : modprobe: ERROR: could not insert ‘zfs’: Key was rejected by service c’est que vous avez oublié de désactiver le secure boot.</p> 1245<ul> 1246<li>On monte les datasets :</li> 1247</ul> 1248<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">zpool import 1249zpool import -f -R /mnt rpool 1250zfs mount rpool/ROOT/debian 1251zfs mount -a</code></pre> 1252<ul> 1253<li>On chroot le système :</li> 1254</ul> 1255<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">mount --make-private --rbind /dev /mnt/dev 1256mount --make-private --rbind /proc /mnt/proc 1257mount --make-private --rbind /sys /mnt/sys 1258mount -t tmpfs tmpfs /mnt/run 1259mkdir /mnt/run/lock 1260chroot /mnt /bin/bash --login</code></pre> 1261<ul> 1262<li>Faites ce que vous avez à faire</li> 1263</ul> 1264<ul> 1265<li>Et on quitte</li> 1266</ul> 1267<pre class="terminal command-line" data-user="root" data-host="debian"><code class="language-markup">exit 1268mount | grep -v zfs | tac | awk '/\/actudebian/ {print $3}' | xargs -i{} umount -lf {} 1269umount /actudebian/* 1270umount -l /actudebian 1271grep /actudebian /proc/*/mounts | tac| awk '{print $3}' FS="/" | uniq | xargs -i{} kill -9 {} 1272/sbin/zpool export -a 1273/sbin/reboot -f</code></pre> 1274<div id="ftwp-postcontent-end"></div> 1275 1276 </div><!-- .entry-content --> 1277 1278 <footer class="entry-footer"> 1279 <hr> </footer><!-- .entry-footer --> 1280</article><!-- #post-## --> 1281 </main><!-- #main --> 1282 <div class="post-navigation"> 1283 <nav class="navigation" role="navigation"> 1284 <h2 class="screen-reader-text">Navigation de lâarticle</h2> 1285 <div class="nav-links"> 1286 <div class="row"> 1287 <!-- Get Next Post --> 1288 <div class="col-md-6 prev-post"> 1289 <a class="" href="https://www.drgeek.fr/tutoriels/article/serveur-intro/"><span class="next-prev-text">PRÃCÃDENT </span><br>Introduction</a> 1290 </div> 1291 1292 <div class="col-md-6 next-post"> 1293 <a class="" href="https://www.drgeek.fr/tutoriels/article/etape-1a-installation-zfs-native-encryption-debian-bullseye-proxmox/"><span class="next-prev-text"> 1294 SUIVANT</span><br>
1294Etape 1 (V1) – Installation – ZFS Native Encryption & Debian Bullseye avec Proxmox</a> 1295 </div> 1296 1297 <!-- Get Previous Post --> 1298 1299 1300 </div> 1301 </div><!-- .nav-links --> 1302 </nav><!-- .navigation--> 1303 </div> 1304 1305 <div> 1306 <div class="post-comments"> 1307<div id="comments" class="comments-area"> 1308 1309 <h2 class="comments-title"> 1310 2 Replies to “Etape 1 (V1) – Installation – Secure Boot EFI & ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local)” </h2> 1311 1312 <ol class="comment-list"> 1313 <li id="comment-5706" class="comment even thread-even depth-1 parent"> 1314 <article id="div-comment-5706" class="comment-body"> 1315 <footer class="comment-meta"> 1316 <div class="comment-author vcard"> 1317 <img alt='' src='https://secure.gravatar.com/avatar/a62e080610d3eb10dd4b51fcc4748d5b?s=50&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/a62e080610d3eb10dd4b51fcc4748d5b?s=100&d=mm&r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /> <b class="fn">Samuel</b> <span class="says">dit :</span> </div><!-- .comment-author --> 1318 1319 <div class="comment-metadata"> 1320 <a href="https://www.drgeek.fr/tutoriels/article/serveur-1-installation/#comment-5706"> 1321 <time datetime="2021-04-28T16:29:30+00:00"> 1322 28 avril 2021 à 16 h 29 min </time> 1323 </a> 1324 </div><!-- .comment-metadata --> 1325 1326 </footer><!-- .comment-meta --> 1327 1328 <div class="comment-content"> 1329 <p>> ZFS peut théoriquement fonctionné sur nâimporte quel type de hardware mais il est recommandé dâavoir de la RAM compatible ECC (voir ce site)</p> 1330<p>Ce site dit précisément l’inverse : tout l’enjeu de l’article est de debunker l’idée selon laquelle une mémoire ECC serait davantage nécessaire pour ZFS que pour tout autre système de fichiers.</p> 1331 </div><!-- .comment-content --> 1332 1333 <div class="reply"><a rel='nofollow' class='comment-reply-link' href='https://www.drgeek.fr/tutoriels/article/serveur-1-installation/?replytocom=5706#respond' onclick='return addComment.moveForm( "div-comment-5706", "5706", "respond", "1735" )' aria-label='Répondre à Samuel'>Répondre</a></div> </article><!-- .comment-body --> 1334<ol class="children"> 1335 <li id="comment-6298" class="comment byuser comment-author-zedoktor bypostauthor odd alt depth-2"> 1336 <article id="div-comment-6298" class="comment-body"> 1337 <footer class="comment-meta"> 1338 <div class="comment-author vcard"> 1339 <img alt='' src='https://secure.gravatar.com/avatar/a5cffd31ae99de8fd4b76c01663f236c?s=50&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/a5cffd31ae99de8fd4b76c01663f236c?s=100&d=mm&r=g 2x' class='avatar avatar-50 photo' height='50' width='50' /> <b class="fn">DrGeek</b> <span class="says">dit :</span> </div><!-- .comment-author --> 1340 1341 <div class="comment-metadata"> 1342 <a href="https://www.drgeek.fr/tutoriels/article/serveur-1-installation/#comment-6298"> 1343 <time datetime="2022-03-01T19:45:04+00:00"> 1344 1 mars 2022 à 19 h 45 min </time> 1345 </a> 1346 </div><!-- .comment-metadata --> 1347 1348 </footer><!-- .comment-meta --> 1349 1350 <div class="comment-content"> 1351 <p>Oui j’ai bugué j’avais justement pris cet article pour montrer que c’était toujours un débat sans fin. J’ai corrigé merci ! Finalement tu as opté pour quelle solution ?</p> 1352 </div><!-- .comment-content --> 1353 1354 <div class="reply"><a rel='nofollow' class='comment-reply-link' href='https://www.drgeek.fr/tutoriels/article/serveur-1-installation/?replytocom=6298#respond' onclick='return addComment.moveForm( "div-comment-6298", "6298", "respond", "1735" )' aria-label='Répondre à DrGeek'>Répondre</a></div> </article><!-- .comment-body --> 1355</li><!-- #comment-## --> 1356</ol><!-- .children --> 1357</li><!-- #comment-## --> 1358 </ol><!-- .comment-list --> 1359 1360 1361 1362 1363 <div id="respond" class="comment-respond"> 1364 <h3 id="reply-title" class="comment-reply-title">Laisser un commentaire <small><a rel="nofollow" id="cancel-comment-reply-link" href="/tutoriels/article/serveur-1-installation/#respond" style="display:none;">Annuler la réponse</a></small></h3> <form action="https://www.drgeek.fr/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate> 1365 <p class="comment-notes"><span id="email-notes">Votre adresse de messagerie ne sera pas publiée.</span> Les champs obligatoires sont indiqués avec <span class="required">*</span></p><p class="comment-form-comment"><label for="comment">Commentaire</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p><p class="comment-form-author"><label for="author">Nom <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" required='required' /></p> 1366<p class="comment-form-email"><label for="email">Adresse de messagerie <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" required='required' /></p> 1367<p class="comment-form-url"><label for="url">Site web</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" /></p> 1368<p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Laisser un commentaire" /> <input type='hidden' name='comment_post_ID' value='1735' id='comment_post_ID' /> 1369<input type='hidden' name='comment_parent' id='comment_parent' value='0' /> 1370</p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="7a83a146b4" /></p><p style="display: none;"><input type="hidden" id="ak_js" name="ak_js" value="117"/></p> </form> 1371 </div><!-- #respond --> 1372 <p class="akismet_comment_form_privacy_notice">Ce site utilise Akismet pour réduire les indésirables. <a href="https://akismet.com/privacy/" target="_blank" rel="nofollow noopener">En savoir plus sur comment les données de vos commentaires sont utilisées</a>.</p> 1373</div><!-- #comments --> 1374</div>
1374 </div> 1375 1376 1377 </div><!-- #primary --> 1378 1379 <div id="secondary" class="col-md-3 sidebar widget-area" role="complementary"> 1380 1381<style type="text/css" id="fixedtoc-style-inline-css">#ftwp-container.ftwp-wrap #ftwp-contents { width: 280px; height: auto; font-size: 12px; } #ftwp-container.ftwp-wrap #ftwp-trigger { width: 50px; height: 50px; font-size: 30px; } #ftwp-container #ftwp-trigger.ftwp-border-medium { font-size: 29px; } #ftwp-container.ftwp-wrap #ftwp-header { font-size: 19.2px; font-family: Lato; } #ftwp-container.ftwp-wrap #ftwp-header-title { font-weight: bold; } #ftwp-container.ftwp-wrap #ftwp-list { font-size: 12px; font-family: Lato; } #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor::before { font-size: 4.8px; } #ftwp-container #ftwp-list.ftwp-strong-first>.ftwp-item>.ftwp-anchor .ftwp-text { font-size: 13.2px; } #ftwp-container.ftwp-wrap #ftwp-list.ftwp-strong-first>.ftwp-item>.ftwp-anchor::before { font-size: 6px; } #ftwp-container.ftwp-wrap #ftwp-trigger { color: #333; background: rgba(243,243,243,0.95); } #ftwp-container.ftwp-wrap #ftwp-trigger { border-color: rgba(51,51,51,0.95); } #ftwp-container.ftwp-wrap #ftwp-contents { border-color: rgba(255,255,255,0.95); } #ftwp-container.ftwp-wrap #ftwp-header { color: #9e9e9e; background: rgba(255,255,255,0.95); } #ftwp-container.ftwp-wrap #ftwp-contents:hover #ftwp-header { background: #ffffff; } #ftwp-container.ftwp-wrap #ftwp-list { color: #6b6b6b; background: rgba(255,255,255,0.95); } #ftwp-container.ftwp-wrap #ftwp-contents:hover #ftwp-list { background: #ffffff; } #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor:hover { color: #00A368; } #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor:focus, #ftwp-container.ftwp-wrap #ftwp-list .ftwp-active, #ftwp-container.ftwp-wrap #ftwp-list .ftwp-active:hover { color: #fff; } #ftwp-container.ftwp-wrap #ftwp-list .ftwp-text::before { background: rgba(0,153,242,0.95); } .ftwp-heading:target::before { background: rgba(0,153,242,0.95); } #ftwp-container #ftwp-list.ftwp-effect-fade .ftwp-anchor.ftwp-active, #ftwp-container #ftwp-list.ftwp-effect-fade .ftwp-anchor:focus { background: rgba(0,153,242,0.95); }</style> 1382<aside id="fixedtoc-2" class="widget ftwp-widget"><div id="ftwp-widget-container"><div id="ftwp-container" class="ftwp-wrap ftwp-hidden-state ftwp-minimize ftwp-middle-right"><button type="button" id="ftwp-trigger" class="ftwp-shape-round ftwp-border-medium" title="click To Maximize The Table Of Contents"><span class="ftwp-trigger-icon ftwp-icon-menu"></span></button><nav id="ftwp-contents" class="ftwp-shape-round ftwp-border-medium"><header id="ftwp-header"><span id="ftwp-header-control" class="ftwp-icon-menu"></span><button type="button" id="ftwp-header-minimize" class="ftwp-icon-expand"></button><h3 id="ftwp-header-title">SOMMAIRE</h3></header><ol id="ftwp-list" class="ftwp-liststyle-none ftwp-effect-fade ftwp-list-nest ftwp-strong-first"><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-1"><span class="ftwp-text">0. Mises à jour</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-2"><span class="ftwp-text">1. Introduction</span></a></li><li class="ftwp-item ftwp-has-sub"><a class="ftwp-anchor" href="#ftoc-heading-3"><span class="ftwp-text">2 ZFS on Debian – Prérequis</span></a><ol class="ftwp-sub"><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-4"><span class="ftwp-text">2.1 Debian Live</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-5"><span class="ftwp-text">2.2 Matériel</span></a></li></ol></li><li class="ftwp-item ftwp-has-sub"><a class="ftwp-anchor" href="#ftoc-heading-6"><span class="ftwp-text">3. Préparation de lâenvironnement dâinstallation</span></a><ol class="ftwp-sub"><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-7"><span class="ftwp-text">3.1 Accès SSH et installations des packages</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-8"><span class="ftwp-text">3.2 Formatage des disques systèmes</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-9"><span class="ftwp-text">
13823.3 Création des pools ZFS</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-10"><span class="ftwp-text">3.4 Création des datasets</span></a></li></ol></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-11"><span class="ftwp-text">4. Installation du système de base</span></a></li><li class="ftwp-item ftwp-has-sub"><a class="ftwp-anchor" href="#ftoc-heading-12"><span class="ftwp-text">5. Configuration du système de base</span></a><ol class="ftwp-sub"><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-13"><span class="ftwp-text">5.1 Nom de la machine</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-14"><span class="ftwp-text">5.2 Interfaces réseaux</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-15"><span class="ftwp-text">5.3 Chrooter dans le nouveau système</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-16"><span class="ftwp-text">5.4 Apt</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-17"><span class="ftwp-text">5.5 Locales</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-18"><span class="ftwp-text">5.6 Console-setup</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-19"><span class="ftwp-text">5.7 Tzdata</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-20"><span class="ftwp-text">5.8 SSH</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-21"><span class="ftwp-text">5.9 Installation des packages nécessaires au boot</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-22"><span class="ftwp-text">5.10 Import automatique de bpool</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-23"><span class="ftwp-text">5.11 Configuration des montages automatique des partitions.</span></a></li></ol></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-24"><span class="ftwp-text">6. Premier redémarrage</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-25"><span class="ftwp-text">7. Swap</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-26"><span class="ftwp-text">8. Paquets utiles</span></a></li><li class="ftwp-item ftwp-has-sub"><a class="ftwp-anchor" href="#ftoc-heading-27"><span class="ftwp-text">9. Installation de Promox</span></a><ol class="ftwp-sub"><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-28"><span class="ftwp-text">9.1 Pré-configuration du système</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-29"><span class="ftwp-text">9.2 Installation de Proxmox</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-30"><span class="ftwp-text">9.3 Configuration du boot pour être compatible ZFS / EFI / Secure boot</span></a></li></ol></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-31"><span class="ftwp-text">10. Ajustement de la configuration de Proxmox</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-32"><span class="ftwp-text">11. En cas de maintenance</span></a></li></ol></nav></div> 1383</div></aside></div><!-- #secondary .widget-area --> 1384 1385 1386 </div> <!--.row--> 1387 </div><!--.container--> 1388 <div class="container"> 1389 <div class="row"> 1390 <div class="col-md-4"> 1391 </div> 1392 <div class="col-md-4"> 1393 </div> 1394 <div class="col-md-4"> 1395 </div> 1396 </div> 1397</div> 1398</div><!-- #content --> 1399<div class="footer-widget-wrapper"> 1400 <div class="container"> 1401 1402 <div class="row"> 1403 <div class="col-md-4"> 1404 <div class="footer-widgets"><h3>Vous recherchez un article ?</h3> 1405<form role="search" method="get" class="search-form" action="https://www.drgeek.fr/"> 1406 <label> 1407 <span class="screen-reader-text">Search for:</span> 1408 <input type="search" class="search-field" placeholder="Rechercher..." value="" name="s" title="Search for:" /> 1409 </label> 1410 <button type="submit" class="search-submit"><span class="screen-reader-text">Search</span></button> 1411</form> 1412</div> 1413 </div> 1414 <div class="col-md-4"> 1415 1416 </div> 1417 <div class="col-md-4"> 1418 <div class="footer-widgets"><h3>Qu’est-ce que c’est ?</h3> <div class="textwidget"><p>Ici on parle d’un peu de tout, surtout d’
1418informatique, un peu de médecine, et très (très) peu d’actualité ^^</p> 1419</div> 1420 </div> 1421 </div> 1422 </div> 1423 </div> 1424</div> 1425<footer id="colophon" class="site-footer" role="contentinfo"> 1426 <div class="row site-info"> 1427 © 2008-2026 DrGeek.fr <br/><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/"><img alt="Licence Creative Commons" style="border-width:0;margin-top: 10px;" src="https://i.creativecommons.org/l/by-nc-nd/4.0/88x31.png" /></a> 1428</div><!-- .site-info --> 1429</footer><!-- #colophon --> 1430</div><!-- #page --> 1431 1432
1432<script type="text/javascript"> 1433 if( navigator.appVersion.indexOf("MSIE 8.") != -1 || navigator.appVersion.indexOf("MSIE 9.") != -1 ) { 1434 document.body.className += ' gg_old_loader'; 1435 } else { 1436 document.body.className += ' gg_new_loader'; 1437 } 1438 </script>
1438 1439 <!--[if lte IE 9]> 1440
1440<script> 1441 (function($) { 1442 $(document).ready(function() { 1443 $( '#ftwp-container' ).addClass( 'ftwp-ie9' ); 1444 }); 1445 })(jQuery); 1446 </script>
1446 1447 <![endif]-->
1448<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/global-gallery/js/lightboxes/jQuery.TosRUs/dist/js/addons/hammer.min.js?ver=5.4'></script>
vendor: 1 bytes, line 1448
1448
1449<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/global-gallery/js/lightboxes/jQuery.TosRUs/lib/FlameViewportScale.js?ver=5.4'></script>
vendor: 1 bytes, line 1449
1449
1450<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/global-gallery/js/lightboxes/jQuery.TosRUs/dist/js/jquery.tosrus.all.min.js?ver=5.4'></script>
vendor: 1 bytes, line 1450
1450
1451<script type='text/javascript' src='https://www.drgeek.fr/wp-content/themes/author/js/bootstrap.js?ver=4.9.31'></script>
vendor: 1 bytes, line 1451
1451
1452<script type='text/javascript' src='https://www.drgeek.fr/wp-content/themes/author/js/skip-link-focus-fix.js?ver=20130115'></script>
vendor: 1 bytes, line 1452
1452
1453<script type='text/javascript' src='https://www.drgeek.fr/wp-includes/js/comment-reply.min.js?ver=4.9.31'></script>
vendor: 1 bytes, line 1453
1453
1454<script type='text/javascript'> 1455/* <![CDATA[ */ 1456var fixedtocOption = {"showAdminbar":"","inOutEffect":"zoom","isNestedList":"1","isColExpList":"","showColExpIcon":"","isAccordionList":"","isQuickMin":"1","isEscMin":"1","isEnterMax":"1","fixedMenu":"","scrollOffset":"10","fixedOffsetX":"40","fixedOffsetY":"0","fixedPosition":"middle-right","contentsFixedHeight":"","inPost":"","contentsFloatInPost":"right","contentsWidthInPost":"250","contentsHeightInPost":"","inWidget":"1","fixedWidget":"1","triggerBorder":"medium","contentsBorder":"medium","triggerSize":"50","debug":"0"}; 1457/* ]]> */ 1458</script>
vendor: 1 bytes, line 1458
1458
1459<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/fixed-toc/frontend/assets/js/ftoc.min.js?ver=4.9.31'></script>
vendor: 1 bytes, line 1459
1459
1460<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/ank-prism-for-wp/out/prism-js.min.js?ver=1520194149'></script>
vendor: 1 bytes, line 1460
1460
1461<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/minervakb/assets/js/vendor/fancybox/jquery.easing-1.3.pack.js'></script>
vendor: 1 bytes, line 1461
1461
1462<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/minervakb/assets/js/vendor/fancybox/jquery.fancybox-1.3.4.js'></script>
vendor: 1 bytes, line 1462
1462
1463<script type='text/javascript'> 1464/* <![CDATA[ */ 1465var MinervaKB = {"ajaxUrl":"https:\/\/www.drgeek.fr\/wp-admin\/admin-ajax.php","siteUrl":"https:\/\/www.drgeek.fr","platform":"desktop","info":{"isSingle":true},"nonce":{"nonce":"937d4c424c","nonceKey":"minerva_kb_ajax_nonce"},"settings":{"show_like_message":false,"show_dislike_message":false,"enable_feedback":false,"single_template":"plugin","feedback_mode":"dislike","track_search_with_results":false,"ga_good_search_category":"Knowledge Base","ga_good_search_action":"Search success","ga_good_search_value":"","track_search_without_results":false,"ga_bad_search_category":"Knowledge Base","ga_bad_search_action":"Search fail","ga_bad_search_value":"","track_article_likes":false,"ga_like_category":"Knowledge Base","ga_like_action":"Article like","ga_like_label":"article_id","ga_like_value":"","track_article_dislikes":false,"ga_dislike_category":"Knowledge Base","ga_dislike_action":"Article dislike","ga_dislike_label":"article_id","ga_dislike_value":"","track_article_feedback":false,"ga_feedback_category":"Knowledge Base","ga_feedback_action":"Article feedback","ga_feedback_label":"article_id","ga_feedback_value":"","search_delay":"250","show_back_to_top":true,"scrollspy_switch":true,"toc_in_content_disable":true,"article_fancybox":true,"article_sidebar_sticky":false,"article_sidebar_sticky_top":{"unit":"%","size":"97"},"article_sidebar_sticky_min_width":{"unit":"px","size":"1025"},"back_to_top_position":"inline","back_to_top_text":"To top","show_back_to_top_icon":true,"back_to_top_icon":"fa-long-arrow-up","back_to_site_top":false,"toc_scroll_offset":{"unit":"px","size":"0"},"search_mode":"nonblocking","search_request_fe_cache":true,"live_search_disable_mobile":false,"live_search_disable_tablet":false,"live_search_disable_desktop":false,"faq_filter_open_single":false,"faq_slow_animation":false,"toc_url_update":false},"i18n":{"no-results":"No results","results":"results","result":"result","questions":"questions","question":"question","like_message_text":"<i class=\"fa fa-smile-o\"><\/i> Great!<br \/><strong>Thank you<\/strong> for your vote!","dislike_message_text":"Thank you for your vote!","feedback_label":"You can leave feedback:","feedback_submit_label":"Send feedback","feedback_submit_request_label":"Sending...","feedback_info_text":"We will use your feedback to improve this article","feedback_sent_text":"Thank you for your feedback, we will do our best to fix this soon"}}; 1466/* ]]> */ 1467</script>
vendor: 1 bytes, line 1467
1467
1468<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/minervakb/assets/js/minerva-kb.js?ver=1.4.6'></script>
vendor: 1 bytes, line 1468
1468
1469<script type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/global-gallery/js/frontend.js?ver=5.4'></script>
vendor: 1 bytes, line 1469
1469
1470<script type='text/javascript' src='https://www.drgeek.fr/wp-includes/js/wp-embed.min.js?ver=4.9.31'></script>
vendor: 1 bytes, line 1470
1470
1471<script async="async" type='text/javascript' src='https://www.drgeek.fr/wp-content/plugins/akismet/_inc/form.js?ver=4.0.8'></script>
1471 1472
1472<script type="text/javascript"> 1473 // Load Galleria's LCweb theme 1474 if(typeof(Galleria) != 'undefined') { 1475 Galleria.loadTheme('https://www.drgeek.fr/wp-content/plugins/global-gallery/js/jquery.galleria/themes/ggallery/galleria.ggallery.js'); 1476 } 1477 1478 </script>
1478 1479
1479<script type="text/javascript"> 1480 1481 1482 1483 // thumbs maker 1484 var gg_lb_thumb = function(src) { 1485 return 'https://www.drgeek.fr/wp-content/plugins/global-gallery/classes/timthumb.php?src='+ src +'&w=100&h=100'; 1486 1487 }; 1488 1489 1490 // show lightbox 1491 gg_throw_lb = function(gall_obj, rel, clicked_index) { 1492 if(!Object.keys(gall_obj).length) {return false;} 1493 1494 if(jQuery('#gg_lb_gall').length) {jQuery('#gg_lb_gall').empty();} 1495 else {jQuery('body').append('<div id="gg_lb_gall"></div>');} 1496 1497 1498 jQuery.each(Object.keys(gall_obj), function(i, v) { 1499 var obj = gall_obj[v]; 1500 var txt = (obj.descr) ? '<p style="margin-bottom: 10px;"><strong>'+obj.title+'</strong></p>'+obj.descr : obj.title; 1501 1502 jQuery('#gg_lb_gall').append('<a href="'+obj.img+'" title="'+ gg_lb_html_fix(txt) +'"></a>'); 1503 }); 1504 1505 var IE8_class = (navigator.appVersion.indexOf("MSIE 8.") != -1) ? ' tosrus_ie8' : ''; 1506 var tosrus = jQuery('#gg_lb_gall a').tosrus({ 1507 show: true, 1508 infinite : true, 1509 effect: 'slide', 1510 wrapper : { 1511 classes : 'gg_tosrus' + IE8_class 1512 }, 1513 pagination : { 1514 add : true, 1515 type : "bullets" 1516 }, 1517 slides : { 1518 scale : "fit" 1519 }, 1520 caption : {add : true}, 1521 buttons : { 1522 prev : true, 1523 next : true, 1524 close: true 1525 }, 1526 keys: true 1527 }); 1528 tosrus.trigger("open", [clicked_index]); 1529 1530 1531 }; 1532 </script>
1532 1533 1534 1535 1536</body> 1537</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.