PageSourceSearch

https://www.drgeek.fr/tutoriels/article/serveur-1-installation/

html drgeek.fr collected 2026-10-06 13:14:13 UTC 100,894 bytes, 1,537 lines download raw bytes

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) &#8211; Installation &#8211; Secure Boot EFI &#038; ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local) &#8211; 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 &raquo; Flux" href="https://www.drgeek.fr/feed/" />
47<link rel="alternate" type="application/rss+xml" title="DrGeek.fr &raquo; Flux des commentaires" href="https://www.drgeek.fr/comments/feed/" />
48<link rel="alternate" type="application/rss+xml" title="DrGeek.fr &raquo; Etape 1 (V1) &#8211; Installation &#8211; Secure Boot EFI &#038; 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&#038;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) &#8211; Installation &#8211; Secure Boot EFI &#038; 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) &#8211; Installation &#8211; Secure Boot EFI &#038; 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) &#8211; Installation &#8211; Secure Boot EFI &#038; 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) &#8211; Installation &#8211; Secure Boot EFI &#038; 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) &#8211; Installation &#8211; Disque crypté LUKS RAID &#038; 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) &#8211; Installation &#8211; ZFS Native Encryption &#038; 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 &#8211; 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 &#8211; 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 &#8211; 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 &#8211; 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 &#8211; 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 &#8211; Le serveur WEB : Nginx &#038; SSL (Let&rsquo;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 &#8211; 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&rsquo;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&rsquo;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&rsquo;avantage de ce système de fichier c&rsquo;est qu&rsquo;il permets de faire de la redondance de fichier (comme le RAID), avec un système de contrôle d&rsquo;intégrité des fichiers.</p>
603<p>Cette page est largement inspirée de :<br />
604&#8211; <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&#8211; <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 &#8211; Prérequis</h3>
607<h4 id="ftoc-heading-4" class="ftwp-heading">2.1 Debian Live</h4>
608<p>Par défaut l&rsquo;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&rsquo;importe quelle version, en fonction de vos habitudes (KDE, Gnome&#8230;), cela n&rsquo;a aucune incidence pour la suite&#8230;</p>
610<h4 id="ftoc-heading-5" class="ftwp-heading">2.2 Matériel</h4>
611<p>ZFS peut théoriquement fonctionner sur n&rsquo;importe quel type de hardware mais il est recommandé d&rsquo;avoir de la RAM compatible ECC (mais ce n&rsquo;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&rsquo;agit d&rsquo;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&rsquo;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&rsquo;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&rsquo;assurer l&rsquo;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&rsquo;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>&#8211; 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>&#8211; autotrim=on :</strong> Active la fonction TRIM automatique, contribuant ainsi à maintenir les performances du SSD au fil du temps. ​<br />
710<strong>&#8211; compatibility=grub2 :</strong> Active uniquement les fonctionnalités de ZFS prises en charge par ce chargeur d&rsquo;amorçage.<strong>&#8211; 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&rsquo;importation du pool lors des démarrages ultérieurs.​<br />
711<strong>&#8211; devices=off :</strong> Désactive l&rsquo;accès aux périphériques dans le pool, empêchant l&rsquo;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>&#8211; acltype=posixacl :</strong> Active les listes de contrôle d&rsquo;accès POSIX, permettant une gestion fine des permissions sur les fichiers et les répertoires.<br />
713<strong>&#8211; xattr=sa :</strong> Stocke les attributs étendus (extended attributes) dans les attributs système, ce qui améliore les performances lors de l&rsquo;utilisation intensive des attributs étendus, notamment pour les ACL.<br />
714<strong>&#8211; 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>&#8211; 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>&#8211; relatime=on :</strong> Active l&rsquo;option relatime pour la gestion des horodatages d&rsquo;accès ce qui réduit les écritures disque inutiles tout en maintenant la compatibilité avec les applications qui nécessitent l&rsquo;atime. ​<br />
716<strong>&#8211; canmount=off :</strong> Empêche le montage automatique de ce dataset.<br />
717<strong>&#8211; mountpoint=/boot :</strong> Spécifie que le point de montage de ce dataset sera /boot.​<br />
718<strong>&#8211; -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&rsquo;installation<br />
719<strong>&#8211; bpool :</strong> Nom du pool ZFS à créer.<br />
720			</div>
721		</div>
722	</div>
723<p>Si vous avez des messages d&rsquo;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&#8211; De faire des snapshots de datasets (des points de restauration et de restaurer à ce moment exactement)<br />
740&#8211; De limiter un dataset en espace disque.<br />
741&#8211; De faire plusieurs datasets de boot par exemple et de switcher d&rsquo;
741un dataset à l&rsquo;autre pour booter le système (et ne pas perdre de donner)<br />
742&#8211; De créer des sous-datasets (avec héritage des propriétés)<br />
743&#8211; Et bien plus&#8230;</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&rsquo;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&rsquo;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&rsquo;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&rsquo;il s&rsquo;agit d&rsquo;un serveur local à 2 interfaces (une vers le réseau externe, l&rsquo;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> &#038; <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&rsquo;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&rsquo;authentifier (nous modifierons la configuration SSH dans l&rsquo;é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&rsquo;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&rsquo;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&rsquo;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&rsquo;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&rsquo;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&rsquo;oubliez pas de retirer la clé USB ou de démonter l&rsquo;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&rsquo;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&rsquo;hui après avoir écumé de nombreux forum je peux vous dire :</p>
1089<p>&#8211; 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&#8211; Qu&rsquo;é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&rsquo;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&rsquo;é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&rsquo;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&rsquo;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&rsquo;agit juste des petites modifications à faire pour revenir une installation de base			</div>
1203		</div>
1204	</div>
1205<ul>
1206<li>D&rsquo;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&rsquo;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&rsquo;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&rsquo;erreur : modprobe: ERROR: could not insert &lsquo;zfs&rsquo;: Key was rejected by service c&rsquo;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) &#8211; Installation &#8211; ZFS Native Encryption &#038; 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 &ldquo;Etape 1 (V1) &#8211; Installation &#8211; Secure Boot EFI &#038; ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local)&rdquo;		</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/a62e080610d3eb10dd4b51fcc4748d5b?s=100&#038;d=mm&#038;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>&gt; 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&rsquo;inverse : tout l&rsquo;enjeu de l&rsquo;article est de debunker l&rsquo;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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/a5cffd31ae99de8fd4b76c01663f236c?s=100&#038;d=mm&#038;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&rsquo;ai bugué j&rsquo;avais justement pris cet article pour montrer que c&rsquo;était toujours un débat sans fin. J&rsquo;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 &#8211; 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&rsquo;est-ce que c&rsquo;est ?</h3>			<div class="textwidget"><p>Ici on parle d&rsquo;un peu de tout, surtout d&rsquo;
1418informatique, un peu de médecine, et très (très) peu d&rsquo;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		&copy; 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.