<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.unscdf.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pfoo</id>
	<title>Linux Server Wiki - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.unscdf.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pfoo"/>
	<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Sp%C3%A9cial:Contributions/Pfoo"/>
	<updated>2026-04-07T21:21:49Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4430</id>
		<title>Exiftool</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4430"/>
		<updated>2026-04-05T00:54:17Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;exiftool -p &#039;$filename has date $filemodifydate and $dateTimeOriginal and $CreateDate and $ModifyDate&#039; -q -f *&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enlever 1h au metadata Modify Date, Create Date et Date/Time Original :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -AllDates-=1 file.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original à la date de dernière modification du fichier (File Modification Date/Time) :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;filemodifydate&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original à la date de dernière modification du fichier (File Modification Date/Time), uniquement si DateTimeOriginal est absent ou a 0 :&lt;br /&gt;
exiftool -preserve &#039;-alldates&amp;lt;filemodifydate&#039; -if &#039;(not $DateTimeOriginal or ($DateTimeOriginal eq &amp;quot;0000:00:00 00:00:00&amp;quot;&amp;quot;))&#039; *.jpg&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original à la même valeur que Date/Time Original :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;datetimeoriginal&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original fonction du nom du fichier en tronquant le prefixe IMG- et le suffixe -WA* puis en ajoutant une heure à 00:00:00 :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;${filename;s/IMG-//;s/-WA.*//} 00:00:00&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-alldates est un alias pour -CreateDate -DateTimeOriginal -ModifyDate&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4429</id>
		<title>Exiftool</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4429"/>
		<updated>2026-04-05T00:51:40Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;exiftool -p &#039;$filename has date $filemodifydate and $dateTimeOriginal and $CreateDate and $ModifyDate&#039; -q -f *&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enlever 1h au metadata Modify Date, Create Date et Date/Time Original :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -AllDates-=1 file.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original à la date de dernière modification du fichier (File Modification Date/Time) :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;filemodifydate&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original à la même valeur que Date/Time Original :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;datetimeoriginal&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original fonction du nom du fichier en tronquant le prefixe IMG- et le suffixe -WA* puis en ajoutant une heure à 00:00:00 :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;${filename;s/IMG-//;s/-WA.*//} 00:00:00&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-alldates est un alias pour -CreateDate -DateTimeOriginal -ModifyDate&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4428</id>
		<title>Exiftool</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4428"/>
		<updated>2026-04-05T00:50:33Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;exiftool -p &#039;$filename has date $filemodifydate and $dateTimeOriginal and $CreateDate and $ModifyDate&#039; -q -f *&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enlever 1h au metadata Modify Date, Create Date et Date/Time Original :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -AllDates-=1 file.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original à la date de dernière modification du fichier (File Modification Date/Time) :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;filemodifydate&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original à la même valeur que Date/Time Original :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;datetimeoriginal&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original fonction du nom du fichier en tronquant le prefixe IMG- et le suffixe -WA* puis en ajoutant une heure à 00:00:00 :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;${filename;s/IMG-//;s/-WA.*//} 00:00:00&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4427</id>
		<title>Exiftool</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4427"/>
		<updated>2026-04-05T00:47:03Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;exiftool -p &#039;$filename has date $filemodifydate and $dateTimeOriginal and $CreateDate and $ModifyDate&#039; -q -f *&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enlever 1h au metadata Modify Date, Create Date et Date/Time Original :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -AllDates-=1 file.jpg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définir les metadata Modify Date, Create Date et Date/Time Original à la date de dernière modification du fichier (File Modification Date/Time) :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -preserve &#039;-alldates&amp;lt;filemodifydate&#039; *.jpg&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4426</id>
		<title>Exiftool</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4426"/>
		<updated>2026-04-05T00:45:24Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;exiftool -p &#039;$filename has date $filemodifydate and $dateTimeOriginal and $CreateDate and $ModifyDate&#039; -q -f *&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enlever 1h au metadata Modify Date, Create Date et Date/Time Original :&lt;br /&gt;
&amp;lt;pre&amp;gt;exiftool -AllDates-=1 file.jpg&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4425</id>
		<title>Exiftool</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Exiftool&amp;diff=4425"/>
		<updated>2026-04-05T00:42:50Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : Page créée avec « &amp;lt;pre&amp;gt;exiftool -p &amp;#039;$filename has date $filemodifydate and $dateTimeOriginal and $CreateDate and $ModifyDate&amp;#039; -q -f *&amp;lt;/pre&amp;gt; »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;exiftool -p &#039;$filename has date $filemodifydate and $dateTimeOriginal and $CreateDate and $ModifyDate&#039; -q -f *&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4424</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4424"/>
		<updated>2026-01-02T15:30:00Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : Annulation des modifications 4423 de Pfoo (discussion)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|style=&amp;quot;width:100%; background:#F5F5F5;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:200%; color:#056FFA;&amp;quot;|Bienvenu sur ce wiki&lt;br /&gt;
|-&lt;br /&gt;
|Ce wiki est dédié aux différentes distributions linux et aux logiciels libres qui les accompagnent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%; border:1px solid #FFFFFF; background:#FFFFFF; color:#FFFFFF;&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:115%; background:#056FFA;&amp;quot;|Rechercher par&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Special:Categories|Catégories]] &amp;amp;#149; [[:Catégorie:Distributions|Distributions]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Généralités=&lt;br /&gt;
[[Généralités sur linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Création du tableau --&amp;gt;&lt;br /&gt;
{| style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne haut gauche --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Serveur =&lt;br /&gt;
; [[:Category:serveur|Liste des pages]]&lt;br /&gt;
: &lt;br /&gt;
; [[Sécuriser_ses_sites_avec_letsencrypt_et_acme-tiny|letsencrypt]]&lt;br /&gt;
; [[:Category:monitoring|Monitoring]]&lt;br /&gt;
: Tutoriels détaillants des outils de supervision et de métrologie&lt;br /&gt;
;[[Proxmox 8]]&lt;br /&gt;
:Tutoriel détaillant l&#039;installation de proxmox 8.x sous debian&lt;br /&gt;
;[[Sécurisation d&#039;un serveur linux]]&lt;br /&gt;
:Guideline basique de propositions de sécurisation d&#039;un serveur linux&lt;br /&gt;
; [[:Category:security|Sécurité]]&lt;br /&gt;
: outils de sécurité&lt;br /&gt;
; [[:Category:virtualisation|virtualisation]]&lt;br /&gt;
: proxmox principalement&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne haut droite --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Bureautique =&lt;br /&gt;
; [[:Category:desktop|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
;[[Kubuntu / KDE : login ssh automatique par clé]]&lt;br /&gt;
:&lt;br /&gt;
;[[ssh : le client libre de OpenSSH]]&lt;br /&gt;
:&lt;br /&gt;
;[[Court-circuiter la vérification dns]]&lt;br /&gt;
:&lt;br /&gt;
;[[Graver un iso bootable sur une clé usb]]&lt;br /&gt;
:Vos CDRW ne marchent plus ? Vous n&#039;avez pas de lecteur cd sur votre netbook ? &lt;br /&gt;
:&lt;br /&gt;
;[[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
:&lt;br /&gt;
;[[Fibre orange en DHCP avec routeur pfsense]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne invisible (fixe la largeur) --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne bas gauche --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Développement =&lt;br /&gt;
; [[:Category:développement|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
; [[Auto-complétion_avec_Vim|Auto-complétion avec Vim]]&lt;br /&gt;
: Configurer l&#039;auto-complétion C++ dans l&#039;editeur de texte Vim&lt;br /&gt;
;[[Git]]&lt;br /&gt;
:Gestionnaire de version décentralisé&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne bas droite --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Divers =&lt;br /&gt;
; [[:Category:Tools|Outils]]&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- fin du tableau --&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4423</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4423"/>
		<updated>2026-01-02T15:29:40Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|style=&amp;quot;width:100%; background:#F5F5F5;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:200%; color:#056FFA;&amp;quot;|Bienvenu sur ce wiki&lt;br /&gt;
|-&lt;br /&gt;
|Ce wiki est dédié aux différentes distributions linux et aux logiciels libres qui les accompagnent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%; border:1px solid #FFFFFF; background:#FFFFFF; color:#FFFFFF;&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:115%; background:#056FFA;&amp;quot;|Rechercher par&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Special:Categories|Catégories]] &amp;amp;#149; [[:Catégorie:Distributions|Distributions]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Généralités=&lt;br /&gt;
[[Généralités sur linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Création du tableau --&amp;gt;&lt;br /&gt;
{| style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne haut gauche --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:25%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Serveur =&lt;br /&gt;
; [[:Category:serveur|Liste des pages]]&lt;br /&gt;
: &lt;br /&gt;
; [[Sécuriser_ses_sites_avec_letsencrypt_et_acme-tiny|letsencrypt]]&lt;br /&gt;
; [[:Category:monitoring|Monitoring]]&lt;br /&gt;
: Tutoriels détaillants des outils de supervision et de métrologie&lt;br /&gt;
;[[Proxmox 8]]&lt;br /&gt;
:Tutoriel détaillant l&#039;installation de proxmox 8.x sous debian&lt;br /&gt;
;[[Sécurisation d&#039;un serveur linux]]&lt;br /&gt;
:Guideline basique de propositions de sécurisation d&#039;un serveur linux&lt;br /&gt;
; [[:Category:security|Sécurité]]&lt;br /&gt;
: outils de sécurité&lt;br /&gt;
; [[:Category:virtualisation|virtualisation]]&lt;br /&gt;
: proxmox principalement&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne haut droite --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:25%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Bureautique =&lt;br /&gt;
; [[:Category:desktop|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
;[[Kubuntu / KDE : login ssh automatique par clé]]&lt;br /&gt;
:&lt;br /&gt;
;[[ssh : le client libre de OpenSSH]]&lt;br /&gt;
:&lt;br /&gt;
;[[Court-circuiter la vérification dns]]&lt;br /&gt;
:&lt;br /&gt;
;[[Graver un iso bootable sur une clé usb]]&lt;br /&gt;
:Vos CDRW ne marchent plus ? Vous n&#039;avez pas de lecteur cd sur votre netbook ? &lt;br /&gt;
:&lt;br /&gt;
;[[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
:&lt;br /&gt;
;[[Fibre orange en DHCP avec routeur pfsense]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne bas gauche --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:25%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Développement =&lt;br /&gt;
; [[:Category:développement|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
; [[Auto-complétion_avec_Vim|Auto-complétion avec Vim]]&lt;br /&gt;
: Configurer l&#039;auto-complétion C++ dans l&#039;editeur de texte Vim&lt;br /&gt;
;[[Git]]&lt;br /&gt;
:Gestionnaire de version décentralisé&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne bas droite --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:25%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Divers =&lt;br /&gt;
; [[:Category:Tools|Outils]]&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- fin du tableau --&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4422</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4422"/>
		<updated>2026-01-02T15:27:27Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|style=&amp;quot;width:100%; background:#F5F5F5;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:200%; color:#056FFA;&amp;quot;|Bienvenu sur ce wiki&lt;br /&gt;
|-&lt;br /&gt;
|Ce wiki est dédié aux différentes distributions linux et aux logiciels libres qui les accompagnent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%; border:1px solid #FFFFFF; background:#FFFFFF; color:#FFFFFF;&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:115%; background:#056FFA;&amp;quot;|Rechercher par&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Special:Categories|Catégories]] &amp;amp;#149; [[:Catégorie:Distributions|Distributions]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Généralités=&lt;br /&gt;
[[Généralités sur linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Création du tableau --&amp;gt;&lt;br /&gt;
{| style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne haut gauche --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Serveur =&lt;br /&gt;
; [[:Category:serveur|Liste des pages]]&lt;br /&gt;
: &lt;br /&gt;
; [[Sécuriser_ses_sites_avec_letsencrypt_et_acme-tiny|letsencrypt]]&lt;br /&gt;
; [[:Category:monitoring|Monitoring]]&lt;br /&gt;
: Tutoriels détaillants des outils de supervision et de métrologie&lt;br /&gt;
;[[Proxmox 8]]&lt;br /&gt;
:Tutoriel détaillant l&#039;installation de proxmox 8.x sous debian&lt;br /&gt;
;[[Sécurisation d&#039;un serveur linux]]&lt;br /&gt;
:Guideline basique de propositions de sécurisation d&#039;un serveur linux&lt;br /&gt;
; [[:Category:security|Sécurité]]&lt;br /&gt;
: outils de sécurité&lt;br /&gt;
; [[:Category:virtualisation|virtualisation]]&lt;br /&gt;
: proxmox principalement&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne haut droite --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Bureautique =&lt;br /&gt;
; [[:Category:desktop|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
;[[Kubuntu / KDE : login ssh automatique par clé]]&lt;br /&gt;
:&lt;br /&gt;
;[[ssh : le client libre de OpenSSH]]&lt;br /&gt;
:&lt;br /&gt;
;[[Court-circuiter la vérification dns]]&lt;br /&gt;
:&lt;br /&gt;
;[[Graver un iso bootable sur une clé usb]]&lt;br /&gt;
:Vos CDRW ne marchent plus ? Vous n&#039;avez pas de lecteur cd sur votre netbook ? &lt;br /&gt;
:&lt;br /&gt;
;[[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
:&lt;br /&gt;
;[[Fibre orange en DHCP avec routeur pfsense]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne invisible (fixe la largeur) --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne bas gauche --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Développement =&lt;br /&gt;
; [[:Category:développement|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
; [[Auto-complétion_avec_Vim|Auto-complétion avec Vim]]&lt;br /&gt;
: Configurer l&#039;auto-complétion C++ dans l&#039;editeur de texte Vim&lt;br /&gt;
;[[Git]]&lt;br /&gt;
:Gestionnaire de version décentralisé&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Colonne bas droite --&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Divers =&lt;br /&gt;
; [[:Category:Tools|Outils]]&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- fin du tableau --&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4421</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4421"/>
		<updated>2026-01-02T15:24:47Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|style=&amp;quot;width:100%; background:#F5F5F5;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:200%; color:#056FFA;&amp;quot;|Bienvenu sur ce wiki&lt;br /&gt;
|-&lt;br /&gt;
|Ce wiki est dédié aux différentes distributions linux et aux logiciels libres qui les accompagnent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%; border:1px solid #FFFFFF; background:#FFFFFF; color:#FFFFFF;&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:115%; background:#056FFA;&amp;quot;|Rechercher par&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Special:Categories|Catégories]] &amp;amp;#149; [[:Catégorie:Distributions|Distributions]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Généralités=&lt;br /&gt;
[[Généralités sur linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Serveur =&lt;br /&gt;
; [[:Category:serveur|Liste des pages]]&lt;br /&gt;
: &lt;br /&gt;
; [[Sécuriser_ses_sites_avec_letsencrypt_et_acme-tiny|letsencrypt]]&lt;br /&gt;
; [[:Category:monitoring|Monitoring]]&lt;br /&gt;
: Tutoriels détaillants des outils de supervision et de métrologie&lt;br /&gt;
;[[Proxmox 8]]&lt;br /&gt;
:Tutoriel détaillant l&#039;installation de proxmox 8.x sous debian&lt;br /&gt;
;[[Sécurisation d&#039;un serveur linux]]&lt;br /&gt;
:Guideline basique de propositions de sécurisation d&#039;un serveur linux&lt;br /&gt;
; [[:Category:security|Sécurité]]&lt;br /&gt;
: outils de sécurité&lt;br /&gt;
; [[:Category:virtualisation|virtualisation]]&lt;br /&gt;
: proxmox principalement&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Bureautique =&lt;br /&gt;
; [[:Category:desktop|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
;[[Kubuntu / KDE : login ssh automatique par clé]]&lt;br /&gt;
:&lt;br /&gt;
;[[ssh : le client libre de OpenSSH]]&lt;br /&gt;
:&lt;br /&gt;
;[[Court-circuiter la vérification dns]]&lt;br /&gt;
:&lt;br /&gt;
;[[Graver un iso bootable sur une clé usb]]&lt;br /&gt;
:Vos CDRW ne marchent plus ? Vous n&#039;avez pas de lecteur cd sur votre netbook ? &lt;br /&gt;
:&lt;br /&gt;
;[[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
:&lt;br /&gt;
;[[Fibre orange en DHCP avec routeur pfsense]]&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Développement =&lt;br /&gt;
; [[:Category:développement|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
; [[Auto-complétion_avec_Vim|Auto-complétion avec Vim]]&lt;br /&gt;
: Configurer l&#039;auto-complétion C++ dans l&#039;editeur de texte Vim&lt;br /&gt;
;[[Git]]&lt;br /&gt;
:Gestionnaire de version décentralisé&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
= Divers =&lt;br /&gt;
; [[:Category:Tools|Outils]]&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Find&amp;diff=4420</id>
		<title>Find</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Find&amp;diff=4420"/>
		<updated>2025-12-31T21:24:48Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rechercher des fichiers et dossier avec la permission d&#039;écriture pour le groupe. Dans cet exemple on ignore les liens symboliques (qui sont forcément en mode 777) :&lt;br /&gt;
&amp;lt;pre&amp;gt;find ./ ! -type l -perm -g=w&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Find&amp;diff=4419</id>
		<title>Find</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Find&amp;diff=4419"/>
		<updated>2025-12-31T21:05:26Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rechercher des fichiers et dossier avec la permission d&#039;écriture pour le groupe. Dans cet exemple on ignore les liens symboliques (qui sont forcément en mode 777) :&lt;br /&gt;
&amp;lt;pre&amp;gt;find ./ -type l -perm -g=w&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Find&amp;diff=4418</id>
		<title>Find</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Find&amp;diff=4418"/>
		<updated>2025-12-29T23:24:08Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : Page créée avec « Rechercher des fichiers et dossier avec la permission d&amp;#039;écriture pour le groupe : &amp;lt;pre&amp;gt;find ./ -perm -g=w&amp;lt;/pre&amp;gt; »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rechercher des fichiers et dossier avec la permission d&#039;écriture pour le groupe :&lt;br /&gt;
&amp;lt;pre&amp;gt;find ./ -perm -g=w&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4417</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4417"/>
		<updated>2025-12-29T00:58:39Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Modifications du umask par défaut / permissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Modifications du umask par défaut / permissions==&lt;br /&gt;
&lt;br /&gt;
Si l&#039;utilisateur n&#039;est pas root, et que que le nom d&#039;utilisateur est le même que le nom du groupe primaire de l&#039;utilisateur, l&#039;umask groupe sera forcé à celui de l&#039;umask utilisateur (exemple : 022 -&amp;gt; 002, 077 -&amp;gt; 007). Pour remettre le comportement antérieur et ne pas interférer avec l&#039;umask groupe :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i -E &#039;/^session optional[[:blank:]]+pam_umask.so$/ s/$/ nousergroups/&#039; /etc/pam.d/common-session&lt;br /&gt;
sed -i -E &#039;/^session optional[[:blank:]]+pam_umask.so$/ s/$/ nousergroups/&#039; /etc/pam.d/common-session-noninteractive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cf https://wiki.debian.org/UserPrivateGroups &amp;amp; https://wiki.debian.org/Permissions#System-wide_umask_configuration&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Le fichier /etc/sysctl.conf n&#039;est plus appliqué==&lt;br /&gt;
&lt;br /&gt;
A partir de debian trixie, le fichier &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; n&#039;est plus lu, en faveur du fichier &amp;lt;code&amp;gt;/usr/lib/sysctl.d/50-default.conf&amp;lt;/code&amp;gt; fournit par le paquet &amp;lt;code&amp;gt;linux-sysctl-defaults&amp;lt;/code&amp;gt;. Si vous souhaitez éditer les sysctl, il faudra désormais créer un fichier &amp;lt;code&amp;gt; /etc/sysctl.d/*.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement (dans ce cas, supprimez les lignes &amp;lt;code&amp;gt;inet6 dhcp&amp;lt;/code&amp;gt; de votre fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
A noter un bug IPv6 avec isc-dhcp-client : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088852&lt;br /&gt;
&lt;br /&gt;
==si la commande ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4416</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4416"/>
		<updated>2025-12-29T00:58:13Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Modifications du umask par défaut / permissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Modifications du umask par défaut / permissions==&lt;br /&gt;
&lt;br /&gt;
Si l&#039;utilisateur n&#039;est pas root, que que le nom d&#039;utilisateur est le même que le nom du groupe primaire de l&#039;utilisateur, l&#039;umask groupe sera forcé à celui de l&#039;umask utilisateur (exemple : 022 -&amp;gt; 002, 077 -&amp;gt; 007). Pour remettre le comportement antérieur et ne pas interférer avec l&#039;umask groupe :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i -E &#039;/^session optional[[:blank:]]+pam_umask.so$/ s/$/ nousergroups/&#039; /etc/pam.d/common-session&lt;br /&gt;
sed -i -E &#039;/^session optional[[:blank:]]+pam_umask.so$/ s/$/ nousergroups/&#039; /etc/pam.d/common-session-noninteractive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cf https://wiki.debian.org/UserPrivateGroups &amp;amp; https://wiki.debian.org/Permissions#System-wide_umask_configuration&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Le fichier /etc/sysctl.conf n&#039;est plus appliqué==&lt;br /&gt;
&lt;br /&gt;
A partir de debian trixie, le fichier &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; n&#039;est plus lu, en faveur du fichier &amp;lt;code&amp;gt;/usr/lib/sysctl.d/50-default.conf&amp;lt;/code&amp;gt; fournit par le paquet &amp;lt;code&amp;gt;linux-sysctl-defaults&amp;lt;/code&amp;gt;. Si vous souhaitez éditer les sysctl, il faudra désormais créer un fichier &amp;lt;code&amp;gt; /etc/sysctl.d/*.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement (dans ce cas, supprimez les lignes &amp;lt;code&amp;gt;inet6 dhcp&amp;lt;/code&amp;gt; de votre fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
A noter un bug IPv6 avec isc-dhcp-client : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088852&lt;br /&gt;
&lt;br /&gt;
==si la commande ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4415</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4415"/>
		<updated>2025-12-29T00:18:58Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Modifications du umask par défaut / permissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Modifications du umask par défaut / permissions==&lt;br /&gt;
&lt;br /&gt;
Si vos utilisateurs ont le même nom de groupe que le nom d&#039;utilisateur, l&#039;umask sera forcé à 0002 au lieu de 0022. Pour remettre le comportement antérieur :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i -E &#039;/^session optional[[:blank:]]+pam_umask.so$/ s/$/ nousergroups/&#039; /etc/pam.d/common-session&lt;br /&gt;
sed -i -E &#039;/^session optional[[:blank:]]+pam_umask.so$/ s/$/ nousergroups/&#039; /etc/pam.d/common-session-noninteractive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cf https://wiki.debian.org/UserPrivateGroups&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Le fichier /etc/sysctl.conf n&#039;est plus appliqué==&lt;br /&gt;
&lt;br /&gt;
A partir de debian trixie, le fichier &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; n&#039;est plus lu, en faveur du fichier &amp;lt;code&amp;gt;/usr/lib/sysctl.d/50-default.conf&amp;lt;/code&amp;gt; fournit par le paquet &amp;lt;code&amp;gt;linux-sysctl-defaults&amp;lt;/code&amp;gt;. Si vous souhaitez éditer les sysctl, il faudra désormais créer un fichier &amp;lt;code&amp;gt; /etc/sysctl.d/*.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement (dans ce cas, supprimez les lignes &amp;lt;code&amp;gt;inet6 dhcp&amp;lt;/code&amp;gt; de votre fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
A noter un bug IPv6 avec isc-dhcp-client : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088852&lt;br /&gt;
&lt;br /&gt;
==si la commande ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4414</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4414"/>
		<updated>2025-12-29T00:06:53Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Risque de modification du nom des interfaces réseaux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Modifications du umask par défaut / permissions==&lt;br /&gt;
&lt;br /&gt;
Si vos utilisateurs ont le même nom de groupe que le nom d&#039;utilisateur, l&#039;umask sera forcé à 0002 au lieu de 0022. Pour remettre le comportement antérieur :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i -E &#039;/^session optional[[:blank:]]+pam_umask.so$/ s/$/ nousergroups/&#039; /etc/pam.d/common-session&lt;br /&gt;
sed -i -E &#039;/^session optional[[:blank:]]+pam_umask.so$/ s/$/ nousergroups/&#039; /etc/pam.d/common-session-noninteractive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Le fichier /etc/sysctl.conf n&#039;est plus appliqué==&lt;br /&gt;
&lt;br /&gt;
A partir de debian trixie, le fichier &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; n&#039;est plus lu, en faveur du fichier &amp;lt;code&amp;gt;/usr/lib/sysctl.d/50-default.conf&amp;lt;/code&amp;gt; fournit par le paquet &amp;lt;code&amp;gt;linux-sysctl-defaults&amp;lt;/code&amp;gt;. Si vous souhaitez éditer les sysctl, il faudra désormais créer un fichier &amp;lt;code&amp;gt; /etc/sysctl.d/*.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement (dans ce cas, supprimez les lignes &amp;lt;code&amp;gt;inet6 dhcp&amp;lt;/code&amp;gt; de votre fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
A noter un bug IPv6 avec isc-dhcp-client : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088852&lt;br /&gt;
&lt;br /&gt;
==si la commande ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Wireguard&amp;diff=4413</id>
		<title>Wireguard</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Wireguard&amp;diff=4413"/>
		<updated>2025-12-26T13:54:14Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:serveur]]&lt;br /&gt;
[[category:debian]]&lt;br /&gt;
[[Category:networking]]&lt;br /&gt;
[[Category:VPN]]&lt;br /&gt;
[[Category:wireguard]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install wireguard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sur node1=&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /etc/wireguard/&lt;br /&gt;
umask 077&lt;br /&gt;
wg genkey &amp;gt; wg0-private.key&lt;br /&gt;
wg pubkey &amp;lt; wg0-private.key &amp;gt; wg0-public.key&lt;br /&gt;
wg genpsk &amp;gt; wg0-psk.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; wg0.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
[Interface]&lt;br /&gt;
PrivateKey = $(cat wg0-private.key)&lt;br /&gt;
ListenPort = 51820&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = &amp;lt;Public key du node2&amp;gt;&lt;br /&gt;
PresharedKey = $(cat wg0-psk.key)&lt;br /&gt;
Endpoint = &amp;lt;IP public du node2&amp;gt;&lt;br /&gt;
AllowedIPs = 10.99.99.2/32&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip link add dev wg0 type wireguard&lt;br /&gt;
ip address add dev wg0 10.99.99.1/24&lt;br /&gt;
wg setconf wg0 /etc/wireguard/wg0.conf&lt;br /&gt;
ip link set up dev wg0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sur node2=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /etc/wireguard/&lt;br /&gt;
umask 077&lt;br /&gt;
wg genkey &amp;gt; wg0-private.key&lt;br /&gt;
wg pubkey &amp;lt; wg0-private.key &amp;gt; wg0-public.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transférer le fichier &amp;lt;code&amp;gt;wg0-psk.key&amp;lt;/code&amp;gt; de node1 à node2 et placez le dans &amp;lt;code/etc/wireguard/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; wg0.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
[Interface]&lt;br /&gt;
PrivateKey = $(cat wg0-private.key)&lt;br /&gt;
ListenPort = 51820&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = &amp;lt;Public key du node1&amp;gt;&lt;br /&gt;
PresharedKey = $(cat wg0-psk.key)&lt;br /&gt;
Endpoint = &amp;lt;IP public du node1&amp;gt;&lt;br /&gt;
AllowedIPs = 10.99.99.1/32&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip link add dev wg0 type wireguard&lt;br /&gt;
ip address add dev wg0 10.99.99.2/24&lt;br /&gt;
wg setconf wg0 /etc/wireguard/wg0.conf&lt;br /&gt;
ip link set up dev wg0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Couper le lien=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip link del wg0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=AllowedIPs=&lt;br /&gt;
&lt;br /&gt;
Attention ! tout trafic destiné à une adresse de destination qui n&#039;est pas défini dans la directive &amp;quot;AllowedIPs&amp;quot; sera refusé.&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Wireguard&amp;diff=4412</id>
		<title>Wireguard</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Wireguard&amp;diff=4412"/>
		<updated>2025-12-26T12:37:15Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : Page créée avec « category:serveur category:debian Category:networking Category:VPN Category:wireguard  &amp;lt;pre&amp;gt;apt install wireguard&amp;lt;/pre&amp;gt;  =Sur node1= &amp;lt;pre&amp;gt;cd /etc/wireguard/ umask 077 wg genkey &amp;gt; wg0-private.key wg pubkey &amp;lt; wg0-private.key &amp;gt; wg0-public.key wg genpsk &amp;gt; wg0-psk.key &amp;lt;/pre&amp;gt;  &amp;lt;pre&amp;gt; cat &amp;gt; wg0.conf &amp;lt;&amp;lt;EOF [Interface] PrivateKey = $(cat wg0-private.key) ListenPort = 51820  [Peer] PublicKey = &amp;lt;Public key du node2&amp;gt; PresharedKey = $(cat wg0-psk.key) Endpoi... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:serveur]]&lt;br /&gt;
[[category:debian]]&lt;br /&gt;
[[Category:networking]]&lt;br /&gt;
[[Category:VPN]]&lt;br /&gt;
[[Category:wireguard]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install wireguard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sur node1=&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /etc/wireguard/&lt;br /&gt;
umask 077&lt;br /&gt;
wg genkey &amp;gt; wg0-private.key&lt;br /&gt;
wg pubkey &amp;lt; wg0-private.key &amp;gt; wg0-public.key&lt;br /&gt;
wg genpsk &amp;gt; wg0-psk.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; wg0.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
[Interface]&lt;br /&gt;
PrivateKey = $(cat wg0-private.key)&lt;br /&gt;
ListenPort = 51820&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = &amp;lt;Public key du node2&amp;gt;&lt;br /&gt;
PresharedKey = $(cat wg0-psk.key)&lt;br /&gt;
Endpoint = &amp;lt;IP public du node2&amp;gt;&lt;br /&gt;
AllowedIPs = 10.99.99.2/32&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip link add dev wg0 type wireguard&lt;br /&gt;
ip address add dev wg0 10.99.99.1/24&lt;br /&gt;
wg setconf wg0 /etc/wireguard/wg0.conf&lt;br /&gt;
ip link set up dev wg0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sur node2=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /etc/wireguard/&lt;br /&gt;
umask 077&lt;br /&gt;
wg genkey &amp;gt; wg0-private.key&lt;br /&gt;
wg pubkey &amp;lt; wg0-private.key &amp;gt; wg0-public.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transférer le fichier &amp;lt;code&amp;gt;wg0-psk.key&amp;lt;/code&amp;gt; de node1 à node2 et placez le dans &amp;lt;code/etc/wireguard/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; wg0.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
[Interface]&lt;br /&gt;
PrivateKey = $(cat wg0-private.key)&lt;br /&gt;
ListenPort = 51820&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = &amp;lt;Public key du node1&amp;gt;&lt;br /&gt;
PresharedKey = $(cat wg0-psk.key)&lt;br /&gt;
Endpoint = &amp;lt;IP public du node1&amp;gt;&lt;br /&gt;
AllowedIPs = 10.99.99.1/32&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip link add dev wg0 type wireguard&lt;br /&gt;
ip address add dev wg0 10.99.99.2/24&lt;br /&gt;
wg setconf wg0 /etc/wireguard/wg0.conf&lt;br /&gt;
ip link set up dev wg0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Couper le lien=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip link del wg0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Shred&amp;diff=4411</id>
		<title>Shred</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Shred&amp;diff=4411"/>
		<updated>2025-12-22T08:56:27Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:documentation]]&lt;br /&gt;
&amp;lt;pre&amp;gt;find &amp;lt;dir&amp;gt; -type f -print0 | xargs -0 shred -fuzv&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Shred&amp;diff=4410</id>
		<title>Shred</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Shred&amp;diff=4410"/>
		<updated>2025-12-22T08:52:25Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:documentation]]&lt;br /&gt;
&amp;lt;pre&amp;gt;find &amp;lt;dir&amp;gt; -type f -print0 | xargs -0 shred -fuz&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Shred&amp;diff=4409</id>
		<title>Shred</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Shred&amp;diff=4409"/>
		<updated>2025-10-25T22:12:00Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:documentation]]&lt;br /&gt;
&amp;lt;pre&amp;gt;find &amp;lt;dir&amp;gt; -type f -print0 | xargs -0 shred&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Monitoring_UPS_Eaton_avec_Nut&amp;diff=4408</id>
		<title>Monitoring UPS Eaton avec Nut</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Monitoring_UPS_Eaton_avec_Nut&amp;diff=4408"/>
		<updated>2025-10-16T19:32:18Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Automatisation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:debian]]&lt;br /&gt;
[[category:monitoring]]&lt;br /&gt;
&lt;br /&gt;
=Eaton 3S=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#$ lsusb&lt;br /&gt;
...&lt;br /&gt;
Bus 003 Device 002: ID 0463:ffff MGE UPS Systems UPS&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez nut :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install nut&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/nut/ups.conf (vendorid basé sur la sortie de &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[eaton]&lt;br /&gt;
driver = usbhid-ups&lt;br /&gt;
port = auto&lt;br /&gt;
vendorid = 0463&lt;br /&gt;
pollfreq = 15&lt;br /&gt;
desc = &amp;quot;Eaton 3S&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le fichier &amp;lt;code&amp;gt;/etc/nut/nut.conf&amp;lt;/code&amp;gt; modifier la valeur &amp;lt;code&amp;gt;MODE=none&amp;lt;/code&amp;gt; en :&lt;br /&gt;
&amp;lt;pre&amp;gt;MODE=standalone&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le driver :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#$ upsdrvctl start&lt;br /&gt;
Network UPS Tools - UPS driver controller 2.8.1&lt;br /&gt;
Network UPS Tools - Generic HID driver 0.52 (2.8.1)&lt;br /&gt;
USB communication driver (libusb 1.0) 0.46&lt;br /&gt;
libusb1: Could not open any HID devices: insufficient permissions on everything&lt;br /&gt;
No matching HID UPS found&lt;br /&gt;
upsnotify: failed to notify about state 4: no notification tech defined, will not spam more about it&lt;br /&gt;
Driver failed to start (exit status=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous terminez avec une erreur. C&#039;est lié au fait que le device usb n&#039;est accessible qu&#039;a root, alors que le démon upsd tourne sous l&#039;utilisateur ups.&amp;lt;br&amp;gt;&lt;br /&gt;
Notez l&#039;id vendeur (0463) et l&#039;id produit (ffff).&amp;lt;br&amp;gt;&lt;br /&gt;
Le fix est très simple : créer le fichier &amp;lt;code&amp;gt;/etc/udev/rules.d/90-nut-ups.rules&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Eaton 3S&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;0463&amp;quot;, ATTR{idProduct}==&amp;quot;ffff&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;nut&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite relancez udev, puis déconnetez/connectez le port usb de votre onduleur :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl restart udev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ca marche tout de suite mieux !&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#$ upsdrvctl start&lt;br /&gt;
Network UPS Tools - UPS driver controller 2.8.1&lt;br /&gt;
Network UPS Tools - Generic HID driver 0.52 (2.8.1)&lt;br /&gt;
USB communication driver (libusb 1.0) 0.46&lt;br /&gt;
Duplicate driver instance detected (PID file /run/nut/usbhid-ups-eaton.pid exists)! Terminating other driver!&lt;br /&gt;
Using subdriver: MGE HID 1.46&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connectez vous :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upsc -l&lt;br /&gt;
upsc eaton@localhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour voir la durée restante sur batterie :&lt;br /&gt;
&amp;lt;pre&amp;gt;upsc eaton@localhost battery.runtime&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatisation==&lt;br /&gt;
Créez un utilisateur dans &amp;lt;code&amp;gt;/etc/nut/upsd.users&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[upsmon]&lt;br /&gt;
    password = &amp;lt;Password&amp;gt;&lt;br /&gt;
    actions = SET&lt;br /&gt;
    instcmds = ALL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis dans &amp;lt;code&amp;gt;/etc/nut/upsmon.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MONITOR eaton@localhost 1 upsmon &amp;lt;Password&amp;gt; primary&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez les services :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart nut-server.service&lt;br /&gt;
systemctl restart nut-monitor.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez a modifier la charge batterie minimale avant shutdown (20 par défaut) :&lt;br /&gt;
&amp;lt;pre&amp;gt;upsrw -s battery.charge.low=15 -u upsmon -p &amp;lt;Password&amp;gt; eaton@localhost&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Monitoring_UPS_Eaton_avec_Nut&amp;diff=4407</id>
		<title>Monitoring UPS Eaton avec Nut</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Monitoring_UPS_Eaton_avec_Nut&amp;diff=4407"/>
		<updated>2025-10-16T19:04:59Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Eaton 3S */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:debian]]&lt;br /&gt;
[[category:monitoring]]&lt;br /&gt;
&lt;br /&gt;
=Eaton 3S=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#$ lsusb&lt;br /&gt;
...&lt;br /&gt;
Bus 003 Device 002: ID 0463:ffff MGE UPS Systems UPS&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez nut :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install nut&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/nut/ups.conf (vendorid basé sur la sortie de &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt;) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[eaton]&lt;br /&gt;
driver = usbhid-ups&lt;br /&gt;
port = auto&lt;br /&gt;
vendorid = 0463&lt;br /&gt;
pollfreq = 15&lt;br /&gt;
desc = &amp;quot;Eaton 3S&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le fichier &amp;lt;code&amp;gt;/etc/nut/nut.conf&amp;lt;/code&amp;gt; modifier la valeur &amp;lt;code&amp;gt;MODE=none&amp;lt;/code&amp;gt; en :&lt;br /&gt;
&amp;lt;pre&amp;gt;MODE=standalone&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le driver :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#$ upsdrvctl start&lt;br /&gt;
Network UPS Tools - UPS driver controller 2.8.1&lt;br /&gt;
Network UPS Tools - Generic HID driver 0.52 (2.8.1)&lt;br /&gt;
USB communication driver (libusb 1.0) 0.46&lt;br /&gt;
libusb1: Could not open any HID devices: insufficient permissions on everything&lt;br /&gt;
No matching HID UPS found&lt;br /&gt;
upsnotify: failed to notify about state 4: no notification tech defined, will not spam more about it&lt;br /&gt;
Driver failed to start (exit status=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous terminez avec une erreur. C&#039;est lié au fait que le device usb n&#039;est accessible qu&#039;a root, alors que le démon upsd tourne sous l&#039;utilisateur ups.&amp;lt;br&amp;gt;&lt;br /&gt;
Notez l&#039;id vendeur (0463) et l&#039;id produit (ffff).&amp;lt;br&amp;gt;&lt;br /&gt;
Le fix est très simple : créer le fichier &amp;lt;code&amp;gt;/etc/udev/rules.d/90-nut-ups.rules&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Eaton 3S&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;0463&amp;quot;, ATTR{idProduct}==&amp;quot;ffff&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;nut&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite relancez udev, puis déconnetez/connectez le port usb de votre onduleur :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl restart udev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ca marche tout de suite mieux !&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#$ upsdrvctl start&lt;br /&gt;
Network UPS Tools - UPS driver controller 2.8.1&lt;br /&gt;
Network UPS Tools - Generic HID driver 0.52 (2.8.1)&lt;br /&gt;
USB communication driver (libusb 1.0) 0.46&lt;br /&gt;
Duplicate driver instance detected (PID file /run/nut/usbhid-ups-eaton.pid exists)! Terminating other driver!&lt;br /&gt;
Using subdriver: MGE HID 1.46&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connectez vous :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upsc -l&lt;br /&gt;
upsc eaton@localhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour voir la durée restante sur batterie :&lt;br /&gt;
&amp;lt;pre&amp;gt;upsc eaton@localhost battery.runtime&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatisation==&lt;br /&gt;
Créez un utilisateur dans &amp;lt;code&amp;gt;/etc/nut/upsd.users&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[upsmon]&lt;br /&gt;
    password = &amp;lt;Password&amp;gt;&lt;br /&gt;
    actions = SET&lt;br /&gt;
    instcmds = ALL&lt;br /&gt;
MONITOR eaton@localhost 1 upsmon &amp;lt;Password&amp;gt; slave&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez les services :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart nut-server.service&lt;br /&gt;
systemctl restart nut-monitor.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez a modifier la charge batterie minimale avant shutdown (20 par défaut) :&lt;br /&gt;
&amp;lt;pre&amp;gt;upsrw -s battery.charge.low=15 -u upsmon -p &amp;lt;Password&amp;gt; eaton@localhost&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4406</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4406"/>
		<updated>2025-10-04T10:33:08Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 8.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
Si vous avez endommagé les certificats autogénérés par proxmox (&amp;lt;code&amp;gt;/etc/pve/pve-root-ca.pem&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/pve/priv/pve-root-ca.key&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/pve/nodes/&amp;lt;node&amp;gt;/pve-ssl.pem&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/etc/pve/nodes/&amp;lt;node&amp;gt;/pve-ssl.key&amp;lt;/code&amp;gt;), vous pouvez les régénérer avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;pvecm updatecerts -f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
journalmatch = _SYSTEMD_UNIT=pvedaemon.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4405</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4405"/>
		<updated>2025-10-04T10:28:00Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 8.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
Si vous avez endommagé les certificats autogénérés par proxmox, vous pouvez les régénérer avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;pvecm updatecerts -f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
journalmatch = _SYSTEMD_UNIT=pvedaemon.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4404</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4404"/>
		<updated>2025-10-04T10:27:52Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 8.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
Si vous avez endommagé les certificats autogénérés par proxmox, vous pouvez les régénérer avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;pvecm updatecerts -f&amp;lt;:pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
journalmatch = _SYSTEMD_UNIT=pvedaemon.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4403</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4403"/>
		<updated>2025-10-03T11:27:03Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 8.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
journalmatch = _SYSTEMD_UNIT=pvedaemon.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4402</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4402"/>
		<updated>2025-10-03T11:26:52Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|style=&amp;quot;width:100%; background:#F5F5F5;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:200%; color:#056FFA;&amp;quot;|Bienvenu sur ce wiki&lt;br /&gt;
|-&lt;br /&gt;
|Ce wiki est dédié aux différentes distributions linux et aux logiciels libres qui les accompagnent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%; border:1px solid #FFFFFF; background:#FFFFFF; color:#FFFFFF;&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:115%; background:#056FFA;&amp;quot;|Rechercher par&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Special:Categories|Catégories]] &amp;amp;#149; [[:Catégorie:Distributions|Distributions]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Généralités=&lt;br /&gt;
[[Généralités sur linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Serveur =&lt;br /&gt;
&lt;br /&gt;
; [[:Category:serveur|Liste des pages]]&lt;br /&gt;
: &lt;br /&gt;
; [[Sécuriser_ses_sites_avec_letsencrypt_et_acme-tiny|letsencrypt]]&lt;br /&gt;
; [[:Category:monitoring|Monitoring]]&lt;br /&gt;
: Tutoriels détaillants des outils de supervision et de métrologie&lt;br /&gt;
;[[Proxmox 8]]&lt;br /&gt;
:Tutoriel détaillant l&#039;installation de proxmox 8.x sous debian&lt;br /&gt;
;[[Sécurisation d&#039;un serveur linux]]&lt;br /&gt;
:Guideline basique de propositions de sécurisation d&#039;un serveur linux&lt;br /&gt;
; [[:Category:security|Sécurité]]&lt;br /&gt;
: outils de sécurité&lt;br /&gt;
; [[:Category:virtualisation|virtualisation]]&lt;br /&gt;
: proxmox principalement&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Bureautique =&lt;br /&gt;
&lt;br /&gt;
; [[:Category:desktop|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
;[[Kubuntu / KDE : login ssh automatique par clé]]&lt;br /&gt;
:&lt;br /&gt;
;[[ssh : le client libre de OpenSSH]]&lt;br /&gt;
:&lt;br /&gt;
;[[Court-circuiter la vérification dns]]&lt;br /&gt;
:&lt;br /&gt;
;[[Graver un iso bootable sur une clé usb]]&lt;br /&gt;
:Vos CDRW ne marchent plus ? Vous n&#039;avez pas de lecteur cd sur votre netbook ? &lt;br /&gt;
:&lt;br /&gt;
;[[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
:&lt;br /&gt;
;[[Fibre orange en DHCP avec routeur pfsense]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Développement =&lt;br /&gt;
; [[:Category:développement|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
; [[Auto-complétion_avec_Vim|Auto-complétion avec Vim]]&lt;br /&gt;
: Configurer l&#039;auto-complétion C++ dans l&#039;editeur de texte Vim&lt;br /&gt;
;[[Git]]&lt;br /&gt;
:Gestionnaire de version décentralisé&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Divers =&lt;br /&gt;
; [[:Category:Tools|Outils]]&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4401</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4401"/>
		<updated>2025-10-03T11:19:58Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Récupération de la table de partition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 7.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
journalmatch = _SYSTEMD_UNIT=pvedaemon.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4400</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4400"/>
		<updated>2025-10-03T11:19:51Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 7.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
journalmatch = _SYSTEMD_UNIT=pvedaemon.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4399</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4399"/>
		<updated>2025-10-03T11:19:41Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Bloquer le spoofing d&amp;#039;adresse mac */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 7.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
journalmatch = _SYSTEMD_UNIT=pvedaemon.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4398</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4398"/>
		<updated>2025-10-03T11:19:33Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Protéger l&amp;#039;interface web avec fail2ban */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 7.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
journalmatch = _SYSTEMD_UNIT=pvedaemon.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4397</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4397"/>
		<updated>2025-10-03T11:18:49Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Protéger l&amp;#039;interface web avec fail2ban */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 7.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
journalmatch = _SYSTEMD_UNIT=pvedaemon.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4396</id>
		<title>Proxmox 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_8&amp;diff=4396"/>
		<updated>2025-10-03T11:17:43Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Protéger l&amp;#039;interface web avec fail2ban */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:virtualisation]]&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment installer proxmox 7.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.&lt;br /&gt;
&lt;br /&gt;
=Prérequis=&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel se base sur l&#039;utilisation de debootstrap pour installer une base de système d&#039;exploitation debian. La plupart des hébergeurs proposent un système de &amp;quot;rescue&amp;quot; permettant l&#039;installation de debian par ce moyen.&lt;br /&gt;
Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l&#039;installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l&#039;iso de debian.&lt;br /&gt;
&lt;br /&gt;
=Pour les débutants=&lt;br /&gt;
&lt;br /&gt;
Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d&#039;une précédente installation de debian ou de proxmox&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/networks&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt; si vous disposez d&#039;un raid logiciel&lt;br /&gt;
* tout fichier de personnalisation de grub (&amp;lt;code&amp;gt;/etc/grub.d/&amp;lt;/code&amp;gt; par exemple)&lt;br /&gt;
&lt;br /&gt;
Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.&lt;br /&gt;
&lt;br /&gt;
=Partitionnement et système de fichier=&lt;br /&gt;
&lt;br /&gt;
Voici le partitionnement que je vais utiliser :&lt;br /&gt;
* Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb&lt;br /&gt;
* Partitions swap de 4096 Go chacune réparties sur sda et sdb&lt;br /&gt;
* Le reste de l&#039;espace sera utilisé plus tard pour un LVM dédié aux VMs&lt;br /&gt;
&lt;br /&gt;
==Partitionnement==&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitionnement GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF00&amp;lt;/code&amp;gt;. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) &amp;lt;code&amp;gt;EFI_SYSPART&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1&lt;br /&gt;
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitionnement GPT pour BIOS===&lt;br /&gt;
&lt;br /&gt;
Nous allons créer avec &amp;lt;code&amp;gt;gdisk&amp;lt;/code&amp;gt; 3 partitions sur chaque disque :&lt;br /&gt;
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type &amp;lt;code&amp;gt;EF02&amp;lt;/code&amp;gt;. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.&lt;br /&gt;
* sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type &amp;lt;code&amp;gt;FD00&amp;lt;/code&amp;gt;.&lt;br /&gt;
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type &amp;lt;code&amp;gt;8200&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notez que la partition du bootloader ne doit pas être formatée.&lt;br /&gt;
&lt;br /&gt;
===Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)===&lt;br /&gt;
&lt;br /&gt;
A titre informatif : création avec &amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;, sans nécessité de créer une partition dédiée au bootloader/grub.&lt;br /&gt;
&lt;br /&gt;
==Création du RAID==&lt;br /&gt;
&lt;br /&gt;
Pour des raisons esthétiques, définissez l&#039;hostname de votre système de rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;hostname proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour créer votre raid 1 avec 2 disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de &amp;lt;code&amp;gt;--raid-devices&amp;lt;/code&amp;gt; et ajouter les partitions des disques à la suite.&lt;br /&gt;
&lt;br /&gt;
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande &amp;lt;code&amp;gt;watch cat /proc/mdstat&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Création des systèmes de fichiers==&lt;br /&gt;
&lt;br /&gt;
Créez un système de fichier ext4 pour le raid du root :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/md2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, initialisez les swaps :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkswap /dev/sda3&lt;br /&gt;
mkswap /dev/sdb3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation de proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installation du système de base==&lt;br /&gt;
&lt;br /&gt;
Nous débutons par installer le système de base de Debian avec &amp;lt;code&amp;gt;debootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les paquets nécessaires dans votre rescue :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install debootstrap debian-keyring debian-archive-keyring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez votre partition raid root sur &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/md2 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian, version bookworm :&lt;br /&gt;
&amp;lt;pre&amp;gt;debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration de Debian==&lt;br /&gt;
&lt;br /&gt;
Montez les vfs suivants, puis chrootez dans votre nouveau système debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /dev/pts /mnt/dev/pts&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les archives apt : éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup wget&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda1       /boot/efi       vfat    defaults                                  0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour GPT pour BIOS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                                 &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1&lt;br /&gt;
/dev/sda3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
/dev/sdb3       swap    swap    sw,pri=1                                          0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition EFI / ESP dans le cas d&#039;un partitionnement GPT pour EFI / UEFI :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /boot/efi&lt;br /&gt;
mount /boot/efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez les interfaces réseaux dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet static&lt;br /&gt;
        address XXXX/24&lt;br /&gt;
        gateway XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&lt;br /&gt;
# main&lt;br /&gt;
ipdelamachine   proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez les hostnames dans ces fichiers :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Pour celui la : non-fqdn&lt;br /&gt;
echo proxmox &amp;gt; /etc/hostname&lt;br /&gt;
# Pour celui la : fqdn&lt;br /&gt;
echo proxmox.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039; Le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; DOIT être cohérent avec le fichier &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, si le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est &amp;lt;code&amp;gt;proxmox&amp;lt;/code&amp;gt; et que l&#039;ip de votre proxmox est 225.182.54.9 il faudra veiller a avoir les informations suivantes dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
225.182.54.9 proxmox.domain.tld proxmox pvelocalhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention : n&#039;utilisez pas 127.0.1.1 (comme le fait debian) mais bien la vrai ip (ici 225.182.54.9)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver XX.XX.XX.XX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez postfix :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer &amp;lt;code&amp;gt;madadm&amp;lt;/code&amp;gt; à ce stade :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install mdadm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre array root s&#039;est bien défini automatiquement dans &amp;lt;code&amp;gt;/etc/mdadm/mdadm.conf&amp;lt;/code&amp;gt;. Si ce n&#039;est pas me cas, ajoutez la configuration de l&#039;array manuellement :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - kernel==&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé du dépôt proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour le système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 1 : Partitions GPT pour EFI / UEFI===&lt;br /&gt;
&lt;br /&gt;
Vérifiez que &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt; est bien monté. Si ce n&#039;est pas le cas, faites le.&lt;br /&gt;
&lt;br /&gt;
Installez le kernel proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-efi-amd64 gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supprimez les paquets suivant si vous n&#039;avez pas besoin de secureboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement tout doit se faire avec des promps. Si ce n&#039;était pas le cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si jamais vous utilisez un démarrage en PXE (c&#039;est le cas sur un serveur OVH par exemple), utilisez l&#039;argument &amp;lt;code&amp;gt;--no-nvram&amp;lt;/code&amp;gt; pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :&lt;br /&gt;
&amp;lt;pre&amp;gt;grub-install --bootloader-id=proxmox --no-nvram&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Etant donné que seul &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; est monté sur &amp;lt;code&amp;gt;/boot/efi&amp;lt;/code&amp;gt;, il faut transférer manuellement les données sur &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdb1 /mnt&lt;br /&gt;
rsync -av /boot/efi/ /mnt/&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si pour une raison quelconque, vous aviez besoin des headers du kernel :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install pve-headers-5.15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install pve-firmware&lt;br /&gt;
apt install proxmox-default-kernel grub-pc gdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on vous demandera où installer grub, choisissez &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; ET &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;. Sinon :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grub-install /dev/sda&lt;br /&gt;
grub-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - OpenSSH==&lt;br /&gt;
&lt;br /&gt;
Installez openssh et définissez un password root. Autorisez le login root par password temporairement.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
passwd&lt;br /&gt;
sed -i &amp;quot;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g&amp;quot; /etc/ssh/sshd_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==&lt;br /&gt;
&lt;br /&gt;
Si vous avez une configuration particulière à entrer dans &amp;lt;code&amp;gt;/etc/default/grub&amp;lt;/code&amp;gt;, faites le maintenant. Par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;nomodeset iommu=pt&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis régénérez la configuration de grub :&lt;br /&gt;
&amp;lt;pre&amp;gt;update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vérifier que votre fstab est valide avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;findmnt --verify --verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /boot/efi/&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev/pts&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, redémarrez le serveur sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Installation de ifupdown2==&lt;br /&gt;
&lt;br /&gt;
Le paquet &amp;lt;code&amp;gt;ifupdown2&amp;lt;/code&amp;gt; est en voie de devenir le remplaçant officiel de &amp;lt;code&amp;gt;ifupdown&amp;lt;/code&amp;gt; pour proxmox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install ifupdown2&lt;br /&gt;
apt purge ifupdown&lt;br /&gt;
systemctl enable networking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que votre configuration est fonctionnelle : lancez &amp;lt;code&amp;gt;ifquery -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrez à nouveau votre serveur&lt;br /&gt;
&lt;br /&gt;
==Installation de proxmox - pve==&lt;br /&gt;
&lt;br /&gt;
Une fois le redémarrage effectué, vous allez enfin pouvoir installer pve :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-ve ksm-control-daemon chrony&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt remove os-prober&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez la configuration réseau &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; afin d&#039;y créer votre bridge :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eno3&lt;br /&gt;
iface eno3 inet manual&lt;br /&gt;
&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address xxxxx/24&lt;br /&gt;
        gateway xxxx&lt;br /&gt;
        hwaddress AA:BB:CC:11:22:33&lt;br /&gt;
        bridge_ports eno3&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la ligne &amp;lt;code&amp;gt;hwaddress&amp;lt;/code&amp;gt; avec l&#039;adresse MAC de l&#039;interface eno3.&lt;br /&gt;
&lt;br /&gt;
Installez votre clé SSH dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; puis désactivez le login root par password de OpenSSH dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:&lt;br /&gt;
* Pour EFI : &amp;lt;code&amp;gt;dpkg-reconfigure grub-efi-amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour BIOS : &amp;lt;code&amp;gt;dpkg-reconfigure grub-pc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Redémarrez une dernière fois pour appliquer les changements.&lt;br /&gt;
&lt;br /&gt;
Votre proxmox sera accessible à l&#039;adresse https://ip:8006&lt;br /&gt;
&lt;br /&gt;
==Nettoyage des paquets==&lt;br /&gt;
&lt;br /&gt;
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration réseau avancée==&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;une IPv6 sur vmbr0===&lt;br /&gt;
&lt;br /&gt;
===Ajout d&#039;un réseau interne vmbr1===&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment créer un réseau interne avec proxmox, c&#039;est à dire, un réseau qui ne sera attaché à aucune interface réseau physique. L&#039;intérêt est d&#039;offrir un débit bien supérieur pour les communications entre les VMs.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr1&lt;br /&gt;
iface vmbr1 inet static&lt;br /&gt;
        address  192.168.0.1&lt;br /&gt;
        netmask  255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : vous pouvez faire de même en ipv6 :&lt;br /&gt;
* il faut utiliser le range Unique Local Address (ULA) fd00::/8 (http://en.wikipedia.org/wiki/Unique_Local_Address)&lt;br /&gt;
* pour générer votre ULA : http://pfoo.unscdf.org/ula/gen-ula.html&lt;br /&gt;
&lt;br /&gt;
==Sécurisation de base==&lt;br /&gt;
&lt;br /&gt;
Je vous conseil de commencer à sécuriser votre ssh :&lt;br /&gt;
* désactivez le login root (directive &amp;lt;code&amp;gt;PermitRootLogin no&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.&lt;br /&gt;
* utilisez la directive &amp;lt;code&amp;gt;allowusers &amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt; pour n&#039;autoriser que certains utilisateurs à se connecter en ssh.&lt;br /&gt;
&lt;br /&gt;
Il est aussi préférable d&#039;installer le serveur de temps NTP à la place de systemd-timesyncd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install chrony&lt;br /&gt;
apt purge systemd-timesyncd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configurer le serveur mail postfix=&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
==Certificats SSL==&lt;br /&gt;
Si vous avez votre propre autorité ssl, vous pouvez générer votre propre certificat. Si ce n&#039;est pas le cas, vous pouvez toujours aller lire [http://wiki.unscdf.org/index.php?title=Installation_et_configuration_de_OpenSSL ceci] afin d&#039;apprendre à créer votre autorité ssl.&lt;br /&gt;
&lt;br /&gt;
Ajoutez les lignes suivantes dans &amp;lt;code&amp;gt;/etc/ssl/openssl.cnf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[POSTFIX]&lt;br /&gt;
nsComment                       = &amp;quot;SMTP Server Certificate&amp;quot;&lt;br /&gt;
subjectKeyIdentifier            = hash&lt;br /&gt;
authorityKeyIdentifier          = keyid,issuer:always&lt;br /&gt;
issuerAltName                   = issuer:copy&lt;br /&gt;
basicConstraints                = critical,CA:FALSE&lt;br /&gt;
keyUsage                        = critical, digitalSignature, nonRepudiation, keyEncipherment&lt;br /&gt;
nsCertType                      = server&lt;br /&gt;
extendedKeyUsage                = serverAuth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis générez la clé et le certificat, et signez le avec votre autorité (int_ca dans mon cas) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout postfix.key -out postfix.req&lt;br /&gt;
openssl ca -config /etc/ssl/openssl.cnf -name int_ca -extensions POSTFIX -in postfix.req -out postfix.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Déplacez les fichiers dans le répertoire &amp;lt;code&amp;gt;/etc/postfix/ssl&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/postfix/ssl&lt;br /&gt;
mv postfix.key /etc/postfix/ssl/&lt;br /&gt;
mv postfix.pem /etc/postfix/ssl/&lt;br /&gt;
chmod 600 /etc/postfix/ssl/*&lt;br /&gt;
cat /etc/ssl/root_ca/root_ca.pem /etc/ssl/int_ca/int_ca.pem &amp;gt; /etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtpd_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
smtpd_use_tls=yes&lt;br /&gt;
smtp_tls_cert_file=/etc/postfix/ssl/postfix.pem&lt;br /&gt;
smtp_tls_key_file=/etc/postfix/ssl/postfix.key&lt;br /&gt;
smtp_tls_CAfile=/etc/postfix/ssl/ca_chain.pem&lt;br /&gt;
&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtpd_tls_loglevel = 1&lt;br /&gt;
smtp_tls_loglevel = 1&lt;br /&gt;
&lt;br /&gt;
#smtp_tls_policy_maps = hash:/etc/postfix/tls_policy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Utiliser son propre certificat SSL proxmox avec un signataire intermédiaire=&lt;br /&gt;
&lt;br /&gt;
Depuis Proxmox 5.2, il n&#039;est plus recommandé d&#039;adapter manuellement les fichiers contenant les certificats et clés privés de proxmox.&amp;lt;br&amp;gt;&lt;br /&gt;
Cependant, vous pouvez placer directement votre clé privé dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.key&amp;lt;/code&amp;gt; et la chaîne de certification dans le fichier &amp;lt;code&amp;gt;/etc/pve/local/pveproxy-ssl.pem&amp;lt;/code&amp;gt;. Vous pouvez également déposer ces fichiers via la webui de proxmox au niveau de chaque serveur.&lt;br /&gt;
&lt;br /&gt;
=Surveiller l&#039;état des disques avec SMART=&lt;br /&gt;
&lt;br /&gt;
Commencez par installer le paquet smartmontools :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install smartmontools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez que vos disques gèrent smart et qu&#039;il est activé :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -i /dev/sda&lt;br /&gt;
smartctl -i /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si smart n&#039;est pas activé, essayez de l&#039;activer comme ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -s on /dev/sda&lt;br /&gt;
smartctl -s on /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez le statut de santé de vos disques :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -H /dev/sda&lt;br /&gt;
smartctl -H /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
S&#039;il indique &amp;lt;code&amp;gt;PASSED&amp;lt;/code&amp;gt; c&#039;est bon de ce côté. S&#039;il vous indique &amp;lt;code&amp;gt;FAILED&amp;lt;/code&amp;gt;, sauvegardez immédiatement vos données !&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence d&#039;erreurs dans le log smart :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smartctl -l error /dev/sda&lt;br /&gt;
smartctl -l error /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez &amp;lt;code&amp;gt;No Errors Logged&amp;lt;/code&amp;gt; ou quelques erreurs, c&#039;est bon. S&#039;il y eu a beaucoup, il faut envisager de changer le disque.&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de smartd est &amp;lt;code&amp;gt;/etc/smartd.conf&amp;lt;/code&amp;gt;. Commentez la ligne &amp;lt;code&amp;gt;DEVICESCAN&amp;lt;/code&amp;gt; puis ajoutez les lignes suivantes pour surveiller les deux disques durs :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m vous@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous activons la surveillance globale (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;), la vérification automatique offline, (&amp;lt;code&amp;gt;-o on&amp;lt;/code&amp;gt;), la sauvegarde automatique des attributs (&amp;lt;code&amp;gt;-S on&amp;lt;/code&amp;gt; et lançons un &amp;lt;code&amp;gt;short self test&amp;lt;/code&amp;gt; tous les jours à 2h du matin, et un &amp;lt;code&amp;gt;long self test&amp;lt;/code&amp;gt; tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à vous@domain.tld.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez smartd :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/smartmontools restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur SMART et ses arguments : [[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
&lt;br /&gt;
=Protégez votre proxmox=&lt;br /&gt;
&lt;br /&gt;
==Désactiver le login root sur l&#039;interface proxmox==&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de proxmox&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Dans Datacenter &amp;gt; Permissions &amp;gt; Users : Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Vous pouvez désactiver le login pam en éditant &amp;lt;code&amp;gt;/etc/pam.d/other&amp;lt;/code&amp;gt; et en y ajoutant, en début de fichier, les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, cette méthode peut avoir des effets de bord si d&#039;autres programmes utilisent l&#039;entité pam/other&lt;br /&gt;
&lt;br /&gt;
==Désactiver rpcbind==&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;utilisez pas de montage NFS vous pouvez désactiver rpcbind.&amp;lt;br&amp;gt;&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/default/nfs-common&amp;lt;/code&amp;gt; et passez l&#039;argument suivant :&lt;br /&gt;
&amp;lt;pre&amp;gt;NEED_STATD=no&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis désactivez rpcbind :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl disable rpcbind.target&lt;br /&gt;
systemctl disable rpcbind.socket&lt;br /&gt;
systemctl disable rpcbind.service&lt;br /&gt;
systemctl stop rpcbind.target&lt;br /&gt;
systemctl stop rpcbind.socket&lt;br /&gt;
systemctl stop rpcbind.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eviter les reboots accidentels avec molly-gard==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install molly-guard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protection SSH avec sshguard==&lt;br /&gt;
&lt;br /&gt;
[[Protéger SSH avec sshguard]]&lt;br /&gt;
&lt;br /&gt;
==Protéger l&#039;interface web avec fail2ban==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install fail2ban&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
# &amp;quot;ignoreip&amp;quot; can be an IP address, a CIDR mask or a DNS host&lt;br /&gt;
ignoreip = 127.0.0.1&lt;br /&gt;
bantime  = 1800&lt;br /&gt;
maxretry = 3&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Destination email address used solely for the interpolations in&lt;br /&gt;
# jail.{conf,local} configuration files.&lt;br /&gt;
destemail = root@localhost&lt;br /&gt;
&lt;br /&gt;
action = %(action_mwl)s&lt;br /&gt;
&lt;br /&gt;
[ssh]&lt;br /&gt;
enabled = false&lt;br /&gt;
&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = false&lt;br /&gt;
&lt;br /&gt;
[proxmox]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = https,http,8006&lt;br /&gt;
filter = proxmox&lt;br /&gt;
backend = systemd&lt;br /&gt;
maxretry = 4&lt;br /&gt;
findtime = 2d&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = pvedaemon\[.*authentication failure; rhost=&amp;lt;HOST&amp;gt; user=.* msg=.*&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez tester votre configuration avec la commande &amp;lt;code&amp;gt;fail2ban-regex /var/log/daemon.log /etc/fail2ban/filter.d/proxmox.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relancez fail2ban :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/fail2ban restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==firewall iptables==&lt;br /&gt;
&lt;br /&gt;
=Création d&#039;un stockage pour les VMs=&lt;br /&gt;
&lt;br /&gt;
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).&lt;br /&gt;
&lt;br /&gt;
Créez sur ces partitions un raid :&lt;br /&gt;
&amp;lt;pre&amp;gt;mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenez à jour &amp;lt;code&amp;gt;mdadm.conf&amp;lt;/code&amp;gt; et votre initramfs afin de conserver le bon naming du raid après reboot :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdadm --examine --scan &amp;gt;&amp;gt; /etc/mdadm/mdadm.conf&lt;br /&gt;
update-initramfs -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis initialisez-y un LVM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pvcreate /dev/md4&lt;br /&gt;
vgcreate main /dev/md4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;a déclarer ce Volume Group LVM dans l&#039;interface proxmox.&lt;br /&gt;
&lt;br /&gt;
=VM qemu/kvm=&lt;br /&gt;
&lt;br /&gt;
==Télécharger vos images==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez placer les iso dans &amp;lt;code&amp;gt;/var/lib/vz/template/iso/&amp;lt;/code&amp;gt; avec &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; par exemple.&lt;br /&gt;
Notez que l&#039;interface graphique de proxmox propose également une fonction d&#039;upload.&lt;br /&gt;
&lt;br /&gt;
==Créer votre première VM==&lt;br /&gt;
&lt;br /&gt;
Une fois la VM crées dans l&#039;interface proxmox, je vous recommande d&#039;écrire des zero sur son disque afin de réduire la taille des futurs backups. Si votre vm porte le numéro 100 et possède un seul disque :&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero | pv -ptrb | dd of=/dev/main/vm-100-disk1 bs=1M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr0 (ip public)===&lt;br /&gt;
&lt;br /&gt;
===Configuration réseau en bridge vmbr1 (ip locale)===&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.0.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Règle iptables à ajouter sur l&#039;hôte :&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A POSTROUTING -s 192.168.0.2 -o vmbr0 -j SNAT --to IP-PUBLIC-DE-VOTRE-HOTE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez rendre accessible l&#039;un des services de la VM depuis l&#039;ip de l&#039;hote sur un port sépcifique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A PREROUTING -p tcp -d &amp;lt;ip de l&#039;hote&amp;gt; --dport &amp;lt;port souhaité&amp;gt; -i vmbr0 -j DNAT --to-destination 192.168.0.2:port&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bloquer le spoofing d&#039;adresse mac==&lt;br /&gt;
Sur l&#039;hyperviseur, installez &amp;lt;code&amp;gt;ebtables&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install ebtables&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admettons ensuite que votre VM a comme adresse ip &amp;lt;code&amp;gt;84.93.26.3&amp;lt;/code&amp;gt; et que son adresse mac doit être &amp;lt;code&amp;gt;52:54:00:00:98:b6&amp;lt;/code&amp;gt; : &lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv4 --ip-src 84.93.26.3 -s ! 52:54:00:00:98:b6 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire de même pour l&#039;ipv6. Dans l&#039;exemple suivant, seul le bloc ipv6 &amp;lt;code&amp;gt;2a01:d4h:123b:100::/56&amp;lt;/code&amp;gt; est utilisable par la vm :&lt;br /&gt;
&amp;lt;pre&amp;gt;ebtables -A FORWARD -p IPv6 --ip6-src 2a01:d4h:123b:100::/56 -s ! 52:54:00:00:08:b1 -j DROP&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Importer une VM depuis vmware ESXi==&lt;br /&gt;
&lt;br /&gt;
==qm et modification des VMs en ligne de commande==&lt;br /&gt;
&lt;br /&gt;
==Monter les partitions d&#039;une VM depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour la partition 1 : start*blocksize = offset&lt;br /&gt;
donc 2048*512 = 1048576&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;losetup /dev/loop1 -o 1048576 /dev/main/vm-101-disk-1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et enfin :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /dev/loop1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé vos modifications :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount /mnt&lt;br /&gt;
losetup -d /dev/loop1&lt;br /&gt;
losetup -d /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Si la partition que vous voulez monter est un LVM===&lt;br /&gt;
&lt;br /&gt;
Scannez les nouveaux volumes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm pvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Activez les groupes :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm vgchange -ay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
listez les lvms avec :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvm lvs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les LV devraient apparaître dans &amp;lt;code&amp;gt;/dev/mapper/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous avez terminé :&lt;br /&gt;
* démontez les LV&lt;br /&gt;
* Désactivez le groupe avec &amp;lt;code&amp;gt;vgchange -an&amp;lt;/code&amp;gt;&lt;br /&gt;
* désactivez le loopback : &amp;lt;code&amp;gt;losetup -d /dev/loop0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Augmenter la taille du disque d&#039;une VM==&lt;br /&gt;
&lt;br /&gt;
Coupez la VM.&lt;br /&gt;
&lt;br /&gt;
Sur l&#039;host pour modifier la taille du disque 1 de la vm 110 ) 140G :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvextend -L 140G /dev/main/vm-110-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite, sur la vm lancée, utiliser resize2fs&lt;br /&gt;
&lt;br /&gt;
==Migrer une VM vers un autre serveur manuellement (pas de cluster) avec un downtime minimum==&lt;br /&gt;
&lt;br /&gt;
Nous allons voir comment migrer une VM proxmox stockée sur un LVM d&#039;un serveur à un autre, et ce, en minimisant au maximum le downtime. Pour cela, nous allons coupler la fonctionnalité de snapshot de lvm avec un petit script (lvmsync) qui permet de ne transférer que les blocs modifiés d&#039;un snapshot.&lt;br /&gt;
&lt;br /&gt;
Installez dmsetup et ruby (1.8 minimum) sur le serveur d&#039;origine et de destination :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install dmsetup ruby&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Récupérez &amp;lt;code&amp;gt;lvmsync&amp;lt;/code&amp;gt; sur https://github.com/mpalmer/lvmsync et placez le dans /sbin/ sur les serveurs d&#039;origine et de destination.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, nous allons migrer la vm 102 disposant d&#039;un seul disque virtuel nommé vm-102-disk-1 et stocké dans le vg main du serveur server1.domain.tld vers le serveur server2.domain.tld.&lt;br /&gt;
Pour commencer, créez un snapshot de votre vm sur server1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvcreate --snapshot -L200G -n 102-lvmsync main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les io de cette vm seront stockés dans le snapshot 102-lvmsync.&lt;br /&gt;
&lt;br /&gt;
Sur votre nouveau serveur, créez une VM identique à celle de votre premier serveur (surtout en qui concerne la taille de disque).&lt;br /&gt;
Depuis server1, copiez avec un dd over ssh le disque d&#039;origine de votre vm vers votre nouveau serveur.&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/main/vm-102-disk-1 | pv -ptrb | ssh -o &amp;quot;Compression no&amp;quot; root@server2.domain.tld &amp;quot;dd of=/dev/main/vm-102-disk-1 bs=100M&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : sur un réseauu 100Mbps utilisez plutôt &amp;lt;code&amp;gt;-o &amp;quot;Compressionlevel 1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois la copie terminée, coupez la vm 102 sur server1, puis lancez lvmsync sur le snapshot (toujours sur server1) :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmsync /dev/main/102-lvmsync server2.domain.tld:/dev/main/vm-102-disk-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le travail de lvmsync achevé, il ne nous reste plus qu&#039;a relancer la vm sur server2&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, si vous voulez merger le snapshot de la vm 102 sur server 1, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;lvconvert --merge /dev/main/102-lvmsync&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conteneur LXC=&lt;br /&gt;
&lt;br /&gt;
==Empêcher la mise à jour automatique de certains fichiers de configuration système du conteneur==&lt;br /&gt;
&lt;br /&gt;
Certains fichiers de configuration du conteneur sont mis à jour automatiquement à chaque démarrage (voir https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_guest_operating_system_configuration)&lt;br /&gt;
&lt;br /&gt;
On peut empêcher la mise à jour de ces fichiers en créant un fichier &amp;lt;code&amp;gt;.pve-ignore.NOM&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Par exemple, &amp;lt;code&amp;gt;/etc/.pve-ignore.resolv.conf&amp;lt;/code&amp;gt; empêchera le fichier &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; d&#039;être mis à jour à chaque démarrage.&lt;br /&gt;
&lt;br /&gt;
=Annexes=&lt;br /&gt;
&lt;br /&gt;
==Problème de layout dans la console vnc==&lt;br /&gt;
Dans l&#039;interface web de proxmox : datacenter &amp;gt; option &amp;gt; passez Keyboard de &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;French&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Erreurs du type &amp;lt;code&amp;gt;IPv6 addrconf: prefix with wrong length 56&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Cette erreur est typique sous linux si les routeurs de votre serveur annoncent des blocs IPv6 /56 alors que vous configurez des /64.&lt;br /&gt;
Ajouter les lignes suivantes dans un fichier &amp;lt;code&amp;gt;/etc/sysctl.d/local.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv6.conf.all.autoconf = 0&lt;br /&gt;
net.ipv6.conf.default.autoconf = 0&lt;br /&gt;
net.ipv6.conf.eno3.autoconf = 0&lt;br /&gt;
net.ipv6.conf.vmbr0.autoconf = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Terminez par relancer procps :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/procps restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==paramètre sysctl ipv6 non appliqué au boot==&lt;br /&gt;
Ajoutez le module ipv6 dans /etc/modules afin d&#039;assurer le chargement d&#039;ipv6 avant l’exécution de sysctl :&lt;br /&gt;
&amp;lt;pre&amp;gt;echo ipv6 &amp;gt;&amp;gt; /etc/modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LVM inaccessible depuis l&#039;host==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lvm pvscan&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface web ne fonctionne pas et la commande qm retourne une erreur ipcc_send_rec failed: Connection refused==&lt;br /&gt;
&lt;br /&gt;
Vérifiez la présence de fichiers et dossiers dans &amp;lt;code&amp;gt;/etc/pve/&amp;lt;/code&amp;gt;. Si ce dossier est vide, c&#039;est probablement que votre fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; est mal configuré.&amp;lt;br&amp;gt;&lt;br /&gt;
Essayez de relancer &amp;lt;code&amp;gt;pve-cluster&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/pve-cluster restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez une erreur ou un warning, lancez la commande pmxcfs. Vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$# pmxcfs &lt;br /&gt;
Jan 21 15:28:19 proxmox pmxcfs[1846]: Unable to get local IP address (pmxcfs.c:721:main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifiez alors que le contenu de &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; est défini dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si par exemple &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt; contient &amp;lt;code&amp;gt;proxmox.domain.tld&amp;lt;/code&amp;gt; vous devriez avoir la ligne suivante dans &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;VOTREIP proxmox.domain.tld proxmox&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pas assez d&#039;interfaces loopback==&lt;br /&gt;
&lt;br /&gt;
Créer le fichier &amp;lt;code&amp;gt;/etc/modprobe.d/local-loop.conf&amp;lt;/code&amp;gt; contenant :&lt;br /&gt;
&amp;lt;pre&amp;gt;options loop max_loop=64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ensuite redémarrer ou recharger le module loop :&lt;br /&gt;
&amp;lt;pre&amp;gt; rmmod loop &amp;amp;&amp;amp; modprobe loop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Défragmentation LVM : exemple==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hub:~# pvdisplay --maps&lt;br /&gt;
  --- Physical volume ---&lt;br /&gt;
  PV Name               /dev/sda4&lt;br /&gt;
  VG Name               main&lt;br /&gt;
  PV Size               1.76 TB / not usable 456.00 KB&lt;br /&gt;
  Allocatable           yes &lt;br /&gt;
  PE Size (KByte)       4096&lt;br /&gt;
  Total PE              461649&lt;br /&gt;
  Free PE               208721&lt;br /&gt;
  Allocated PE          252928&lt;br /&gt;
  PV UUID               PUqV5Q-WRW2-n20t-eFVM-CA1r-RhDl-2RTJHq&lt;br /&gt;
   &lt;br /&gt;
  --- Physical Segments ---&lt;br /&gt;
  Physical extent 0 to 7935:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-1&lt;br /&gt;
    Logical extents     0 to 7935&lt;br /&gt;
  Physical extent 7936 to 72191:&lt;br /&gt;
    Logical volume      /dev/main/vm-101-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 72192 to 136703:&lt;br /&gt;
    Logical volume      /dev/main/vm-102-disk-1&lt;br /&gt;
    Logical extents     0 to 64511&lt;br /&gt;
  Physical extent 136704 to 144895:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-1&lt;br /&gt;
    Logical extents     0 to 8191&lt;br /&gt;
  Physical extent 144896 to 209151:&lt;br /&gt;
    Logical volume      /dev/main/vm-103-disk-2&lt;br /&gt;
    Logical extents     0 to 64255&lt;br /&gt;
  Physical extent 209152 to 214271:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-1&lt;br /&gt;
    Logical extents     0 to 5119&lt;br /&gt;
  Physical extent 214272 to 227327:&lt;br /&gt;
    Logical volume      /dev/main/vm-104-disk-2&lt;br /&gt;
    Logical extents     0 to 13055&lt;br /&gt;
  Physical extent 227328 to 282111:&lt;br /&gt;
    FREE&lt;br /&gt;
  Physical extent 282112 to 307711:&lt;br /&gt;
    Logical volume      /dev/main/vm-108-disk-1&lt;br /&gt;
    Logical extents     0 to 25599&lt;br /&gt;
  Physical extent 307712 to 461648:&lt;br /&gt;
    FREE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, on a un trou &amp;quot;vide&amp;quot; entre l&#039;extent &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; et 282111, puis à nouveau des données entre l&#039;extent &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour combler ce trou, nous allons déplacer les données des  /dev/main/vm-108-disk-1 situés entre les extents &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt; et &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; (soit 25599 extents au total) vers l&#039;espace libre avec &amp;lt;code&amp;gt;pvmove&amp;lt;/code&amp;gt; :&amp;lt;br&amp;gt;&lt;br /&gt;
pvmove /dev/sda4:&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;282112&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;307711&amp;lt;/span&amp;gt; /dev/sda4:&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt;-&amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt; --alloc anywhere&lt;br /&gt;
&lt;br /&gt;
Notez qu&#039;il faut attribuer exactement le même nombre d&#039;extents à la destination qu&#039;à l&#039;origine : &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;227328&amp;lt;/span&amp;gt; + 25599 = &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;252927&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Oups: j&#039;ai supprimé le mauvais lvm==&lt;br /&gt;
&lt;br /&gt;
Pas de panique, mais ne bougez plus ! Pour l&#039;instant, seul les métadonnées du lvm sont impactés.&lt;br /&gt;
Et comme c&#039;est bien foutu, lvm conserve un backup des anciennes metadonnées après chaque modification. Ces archives sont situés dans &amp;lt;code&amp;gt;/etc/lvm/archive/&amp;lt;/code&amp;gt;. Les fichiers y sont nommés sous la forme vg_XXXX-YYYYYYY.vg. Normalement, le fichier ayant le XXXX le plus élevé sera celui de l&#039;état précédent votre erreur.&lt;br /&gt;
Pour vérifier que vous avez sélectionné le bon fichier, vous pouvez l&#039;ouvrir avec nano et regarder si l&#039;état du lvm dans cette archive correspond a ce que vous attendez.&lt;br /&gt;
&lt;br /&gt;
Pour restaurer l&#039;archive des métadonnées main_00007-587941649.vg pour le vg main :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vgcfgrestore -f /etc/lvm/archive/main_00007-587941649.vg main&lt;br /&gt;
lvm vgchange -ay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Votre volume devrait être de retour.&lt;br /&gt;
&lt;br /&gt;
Il faut encore vérifier que la table de partition contenu sur ce lvm n&#039;a pas morphlé. En admettant que /dev/main/vm-101-disk-1 est la lvm que vous venez de restaurer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# fdisk -lu /dev/loop0 &lt;br /&gt;
&lt;br /&gt;
Disk /dev/loop0: 10.7 GB, 10737418240 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Disk identifier: 0x0002f94d&lt;br /&gt;
&lt;br /&gt;
      Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/loop0p1   *        2048    20013055    10005504   83  Linux&lt;br /&gt;
/dev/loop0p2        20015102    20969471      477185    5  Extended&lt;br /&gt;
/dev/loop0p5        20015104    20969471      477184   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voyez ça, c&#039;est bon, vous êtes sauvés ! Si ce n&#039;est pas le cas, continuez à lire ;)&lt;br /&gt;
&lt;br /&gt;
===Récupération de la table de partition===&lt;br /&gt;
&lt;br /&gt;
Si fdisk vous envois chier avec un message du style &amp;lt;code&amp;gt;Disk /dev/loop0 doesn&#039;t contain a valid partition table&amp;lt;/code&amp;gt;, il va falloir récupérer la table de partition.&lt;br /&gt;
&lt;br /&gt;
Installez testdisk :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install testdisk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez le:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# losetup /dev/loop0 /dev/main/vm-101-disk-1&lt;br /&gt;
# testdisk /dev/loop0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selectionez le media &amp;lt;code&amp;gt;/dev/loop0&amp;lt;/code&amp;gt; et validez avec &amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; comme type de table de partition.&lt;br /&gt;
Au menu suivant, sélectionnez &amp;lt;code&amp;gt;analyse&amp;lt;/code&amp;gt;&lt;br /&gt;
A l&#039;écran suivant, tapez enter.&lt;br /&gt;
Avec de la chance, testdisk retrouvera vos partitions. Une fois qu&#039;il aura terminé de travailler, il ne restera plus qu&#039;à taper sur enter encore une fois, puis demander à testdisk de sauvegarder la table de partition&lt;br /&gt;
&lt;br /&gt;
==L&#039;interface proxmox n&#039;affiche pas les disques de certaines VMs==&lt;br /&gt;
&lt;br /&gt;
Ceci arrive typiquement si vous avez créé un volume logique à la main sans y ajouter le bon tag.&lt;br /&gt;
Vérifiez la présence des tags sur vos LV avec la commande &amp;lt;code&amp;gt;lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  20.00g &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, le lv de la vm 101 n&#039;est pas tagué. Vous pouvez ajouter le tag avec &amp;lt;code&amp;gt;lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~# lvchange --addtag pve-vm-101 /dev/main/vm-101-disk-1&lt;br /&gt;
~# lvs --options &#039;vg_name,lv_name,lv_size,tags&#039;&lt;br /&gt;
  VG   LV            LSize   LV Tags   &lt;br /&gt;
  main vm-100-disk-1   2.00g pve-vm-100&lt;br /&gt;
  main vm-101-disk-1  16.00g pve-vm-101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si cela ne fonctionne pas,  essayez de passer un petit coup de &amp;lt;code&amp;gt;qm rescan&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4395</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=4395"/>
		<updated>2025-09-28T20:54:50Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Serveur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|style=&amp;quot;width:100%; background:#F5F5F5;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:200%; color:#056FFA;&amp;quot;|Bienvenu sur ce wiki&lt;br /&gt;
|-&lt;br /&gt;
|Ce wiki est dédié aux différentes distributions linux et aux logiciels libres qui les accompagnent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%; border:1px solid #FFFFFF; background:#FFFFFF; color:#FFFFFF;&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:115%; background:#056FFA;&amp;quot;|Rechercher par&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Special:Categories|Catégories]] &amp;amp;#149; [[:Catégorie:Distributions|Distributions]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Généralités=&lt;br /&gt;
[[Généralités sur linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Serveur =&lt;br /&gt;
&lt;br /&gt;
; [[:Category:serveur|Liste des pages]]&lt;br /&gt;
: &lt;br /&gt;
; [[Sécuriser_ses_sites_avec_letsencrypt_et_acme-tiny|letsencrypt]]&lt;br /&gt;
; [[:Category:monitoring|Monitoring]]&lt;br /&gt;
: Tutoriels détaillants des outils de supervision et de métrologie&lt;br /&gt;
;[[Proxmox 8]]&lt;br /&gt;
:Tutoriel détaillant l&#039;installation de proxmox 7.x sous debian&lt;br /&gt;
;[[Sécurisation d&#039;un serveur linux]]&lt;br /&gt;
:Guideline basique de propositions de sécurisation d&#039;un serveur linux&lt;br /&gt;
; [[:Category:security|Sécurité]]&lt;br /&gt;
: outils de sécurité&lt;br /&gt;
; [[:Category:virtualisation|virtualisation]]&lt;br /&gt;
: proxmox principalement&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Bureautique =&lt;br /&gt;
&lt;br /&gt;
; [[:Category:desktop|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
;[[Kubuntu / KDE : login ssh automatique par clé]]&lt;br /&gt;
:&lt;br /&gt;
;[[ssh : le client libre de OpenSSH]]&lt;br /&gt;
:&lt;br /&gt;
;[[Court-circuiter la vérification dns]]&lt;br /&gt;
:&lt;br /&gt;
;[[Graver un iso bootable sur une clé usb]]&lt;br /&gt;
:Vos CDRW ne marchent plus ? Vous n&#039;avez pas de lecteur cd sur votre netbook ? &lt;br /&gt;
:&lt;br /&gt;
;[[Diagnostic smart d&#039;un disque]]&lt;br /&gt;
:&lt;br /&gt;
;[[Fibre orange en DHCP avec routeur pfsense]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Développement =&lt;br /&gt;
; [[:Category:développement|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
; [[Auto-complétion_avec_Vim|Auto-complétion avec Vim]]&lt;br /&gt;
: Configurer l&#039;auto-complétion C++ dans l&#039;editeur de texte Vim&lt;br /&gt;
;[[Git]]&lt;br /&gt;
:Gestionnaire de version décentralisé&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Divers =&lt;br /&gt;
; [[:Category:Tools|Outils]]&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Proxmox_Backup_Server_(PBS)&amp;diff=4394</id>
		<title>Proxmox Backup Server (PBS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Proxmox_Backup_Server_(PBS)&amp;diff=4394"/>
		<updated>2025-09-26T20:51:44Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Installation de PBS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
&lt;br /&gt;
=Installation du système de base=&lt;br /&gt;
Créez les systèmes de fichier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkfs.ext4 /dev/sda1&lt;br /&gt;
mkswap /dev/sda2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assurez vous que debootstrap est bien installé sur le système de rescue/d&#039;installation :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install debootstrap debian-keyring debian-archive-keyring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Montez la partition sda1 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sda1 /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez le système de base debian :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debootstrap --arch=amd64 bookworm /mnt http://ftp.fr.debian.org/debian&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis chrootez dans le nouveau système :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount -o bind /proc /mnt/proc&lt;br /&gt;
mount -o bind /dev /mnt/dev&lt;br /&gt;
mount -o bind /sys /mnt/sys&lt;br /&gt;
chroot /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration du système de base==&lt;br /&gt;
Éditez le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main archive&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# bookworm-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
# backports archive&lt;br /&gt;
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mettez à jour les paquets :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installez les locales et la configuration de console :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install locales &lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
apt install console-data console-setup-linux console-setup&lt;br /&gt;
dpkg-reconfigure console-data # from arch &amp;gt; french &amp;gt; latin9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Définissez la zone horaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tzselect&lt;br /&gt;
dpkg-reconfigure tzdata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez votre /etc/fstab : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;file system&amp;gt;                                 &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;                       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
UUID=4b47c926-0e14-4076-9c17-637f0ec470aa       /               ext4    defaults,errors=remount-ro      0       1&lt;br /&gt;
UUID=50e94be2-cff4-43f9-a2f8-928a71fecea0       none            swap    sw                              0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eno1&lt;br /&gt;
iface eno1 inet static&lt;br /&gt;
        address 46.104.126.132/24&lt;br /&gt;
        gateway 46.104.126.254&lt;br /&gt;
        broadcast 46.104.126.132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Veillez à bien y adapter le nom de l&#039;interface (&amp;lt;code&amp;gt;eno1&amp;lt;/code&amp;gt; ici) en fonction de votre système (récupérez le par exemple avec la commande&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Modifiez /etc/hosts : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
127.0.1.1       pbs.domain.tld   pbs&lt;br /&gt;
&lt;br /&gt;
# The following lines are desirable for IPv6 capable hosts&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configurez l&#039;hostname :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo pbs &amp;gt; /etc/hostname&lt;br /&gt;
echo pbs.domain.tld &amp;gt; /etc/mailname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver XX.XX.XX.XX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation du kernel==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install linux-image-amd64 firmware-linux-free grub-pc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A l&#039;écran &amp;lt;code&amp;gt;Configuring grub-pc&amp;lt;/code&amp;gt;, installez grub sur &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OpenSSH==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostname -F /etc/hostname&lt;br /&gt;
apt install openssh-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez ensuite votre clé ssh dans &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt;. Sans cela, vous ne pourrez pas vous connecter après avoir redémarré.&lt;br /&gt;
&lt;br /&gt;
==Redémarrage==&lt;br /&gt;
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount /mnt/sys&lt;br /&gt;
umount /mnt/dev&lt;br /&gt;
umount /mnt/proc&lt;br /&gt;
umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis rebootez sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
=Installation de PBS=&lt;br /&gt;
Installez quelques paquets nécessaires :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install postfix gdisk parted wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé gpg du dépôt :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez le dépot PBS dans &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Proxmox Backup Server pbs-no-subscription repository provided by proxmox.com,&lt;br /&gt;
# NOT recommended for production use&lt;br /&gt;
deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Puis installez PBS :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt install proxmox-archive-keyring proxmox-backup ifupdown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note : nous forçons l&#039;installation de ifupdown pour éviter l&#039;installation de ifupdown2 pour des raisons de compatibilité. Si vous décidez d&#039;installer ifupdown2, assurez-vous en premier lieu d&#039;avoir la dernière version de ifupdown installé, et que votre configuration réseau est compatible.&lt;br /&gt;
&lt;br /&gt;
==Kernel alternatif==&lt;br /&gt;
&lt;br /&gt;
Si vous le souhaitez, vous pouvez également installer le kernel officiel de proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install proxmox-kernel-6.8 pve-firmware&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Création de la partition de datastore=&lt;br /&gt;
&lt;br /&gt;
==Création manuelle du montage systemd==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cette procédure permet de respecter le fonctionnement interne actuel de PBS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Créez le système de fichier sur la partition souhaité. Ici, sda3.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkfs.ext4 /dev/sda3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ blkid | grep sda3&lt;br /&gt;
/dev/sda3: UUID=&amp;quot;27208cd1-5e0e-4a59-b36e-fa869bc395c4&amp;quot; TYPE=&amp;quot;ext4&amp;quot; PARTUUID=&amp;quot;7d30a42b-03&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le fichier /etc/systemd/system/mnt-datastore-datastore1.mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=defaults&lt;br /&gt;
Type=ext4&lt;br /&gt;
What=/dev/disk/by-uuid/27208cd1-5e0e-4a59-b36e-fa869bc395c4&lt;br /&gt;
Where=/mnt/datastore/datastore1&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Mount datastore &#039;datastore1&#039; under &#039;/mnt/datastore/datastore1&#039;&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et lancez le montage automatique par systemd :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl enable mnt-datastore-datastore1.mount&lt;br /&gt;
systemctl start mnt-datastore-datastore1.mount&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Création manuelle du montage sans systemd==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procédure alternative&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Créez le dossier sur lequel vous allez monter le datastore puis appliquez lui le flag immuable (+i) afin d&#039;empêcher toute écriture directe sur le dossier non monté :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p /datastore/datastore1&lt;br /&gt;
chattr +i /datastore/datastore1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le système de fichier sur la partition souhaité. Ici, sda3.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkfs.ext4 /dev/sda3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ blkid | grep sda3&lt;br /&gt;
/dev/sda3: UUID=&amp;quot;27208cd1-5e0e-4a59-b36e-fa869bc395c4&amp;quot; TYPE=&amp;quot;ext4&amp;quot; PARTUUID=&amp;quot;7d30a42b-03&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez dans fstab pour que le datastore soit monté au démarrage :&lt;br /&gt;
&amp;lt;pre&amp;gt;UUID=27208cd1-5e0e-4a59-b36e-fa869bc395c4       /datastore/datastore1   ext4    defaults,relatime               0       2&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notez qu&#039;on monte avec l&#039;option &amp;lt;code&amp;gt;relatime&amp;lt;/code&amp;gt; conformément aux recommandations de PBS pour maximiser les performances.&lt;br /&gt;
&lt;br /&gt;
Montez manuellement le datastore &lt;br /&gt;
&amp;lt;pre&amp;gt;mount /datastore/datastore1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ajout du datastore dans PBS=&lt;br /&gt;
&lt;br /&gt;
=Désactiver le login root (pam) sur l&#039;interface PBS=&lt;br /&gt;
Avant toute manipulation, n&#039;oubliez pas de créer un utilisateur ayant les droits d&#039;administration pour accéder à l&#039;interface de PBS&lt;br /&gt;
&lt;br /&gt;
===Via l&#039;interface proxmox===&lt;br /&gt;
Editez l&#039;utilisateur root et décochez la case &amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement, cela aura également comme conséquence de rendre quasiment inopérant le script shell proxmox-backup-manager&lt;br /&gt;
&lt;br /&gt;
===Via les droits linux===&lt;br /&gt;
&amp;lt;pre&amp;gt;passwd --lock root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !&lt;br /&gt;
&lt;br /&gt;
===Via PAM===&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/pam.d/proxmox-backup-auth&amp;lt;/code&amp;gt; et ajoutez y les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth        required    pam_deny.so&lt;br /&gt;
auth        required    pam_warn.so&lt;br /&gt;
account     required    pam_deny.so&lt;br /&gt;
account     required    pam_warn.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Dépôt client uniquement=&lt;br /&gt;
&lt;br /&gt;
Ajoutez la clé de sécurité proxmox :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajouter le dépot APT par exemple dans &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://download.proxmox.com/debian/pbs-client bookworm main&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Debian_Trixie_sources.list&amp;diff=4393</id>
		<title>Debian Trixie sources.list</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Debian_Trixie_sources.list&amp;diff=4393"/>
		<updated>2025-09-25T14:36:20Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
A placer dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main updates and backports&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates trixie-backports&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4392</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4392"/>
		<updated>2025-09-24T12:57:25Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Les paquets isc-dhcp sont dépréciés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Le fichier /etc/sysctl.conf n&#039;est plus appliqué==&lt;br /&gt;
&lt;br /&gt;
A partir de debian trixie, le fichier &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; n&#039;est plus lu, en faveur du fichier &amp;lt;code&amp;gt;/usr/lib/sysctl.d/50-default.conf&amp;lt;/code&amp;gt; fournit par le paquet &amp;lt;code&amp;gt;linux-sysctl-defaults&amp;lt;/code&amp;gt;. Si vous souhaitez éditer les sysctl, il faudra désormais créer un fichier &amp;lt;code&amp;gt; /etc/sysctl.d/*.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement (dans ce cas, supprimez les lignes &amp;lt;code&amp;gt;inet6 dhcp&amp;lt;/code&amp;gt; de votre fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
A noter un bug IPv6 avec isc-dhcp-client : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088852&lt;br /&gt;
&lt;br /&gt;
==si la commande ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4391</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4391"/>
		<updated>2025-09-24T12:46:57Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Les paquets isc-dhcp sont dépréciés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Le fichier /etc/sysctl.conf n&#039;est plus appliqué==&lt;br /&gt;
&lt;br /&gt;
A partir de debian trixie, le fichier &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; n&#039;est plus lu, en faveur du fichier &amp;lt;code&amp;gt;/usr/lib/sysctl.d/50-default.conf&amp;lt;/code&amp;gt; fournit par le paquet &amp;lt;code&amp;gt;linux-sysctl-defaults&amp;lt;/code&amp;gt;. Si vous souhaitez éditer les sysctl, il faudra désormais créer un fichier &amp;lt;code&amp;gt; /etc/sysctl.d/*.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement (dans ce cas, supprimez les lignes &amp;lt;code&amp;gt;inet6 dhcp&amp;lt;/code&amp;gt; de votre fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A noter un bug IPv6 avec isc-dhcp-client : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088852&lt;br /&gt;
&lt;br /&gt;
==si la commande ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4390</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4390"/>
		<updated>2025-09-24T12:37:05Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Les paquets isc-dhcp sont dépréciés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Le fichier /etc/sysctl.conf n&#039;est plus appliqué==&lt;br /&gt;
&lt;br /&gt;
A partir de debian trixie, le fichier &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; n&#039;est plus lu, en faveur du fichier &amp;lt;code&amp;gt;/usr/lib/sysctl.d/50-default.conf&amp;lt;/code&amp;gt; fournit par le paquet &amp;lt;code&amp;gt;linux-sysctl-defaults&amp;lt;/code&amp;gt;. Si vous souhaitez éditer les sysctl, il faudra désormais créer un fichier &amp;lt;code&amp;gt; /etc/sysctl.d/*.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement.&lt;br /&gt;
&lt;br /&gt;
A noter un bug IPv6 avec isc-dhcp-client : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088852&lt;br /&gt;
&lt;br /&gt;
==si la commande ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Debian_Trixie_sources.list&amp;diff=4389</id>
		<title>Debian Trixie sources.list</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Debian_Trixie_sources.list&amp;diff=4389"/>
		<updated>2025-09-24T12:02:19Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
&lt;br /&gt;
A placer dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main updates and backports&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates trixie-backports&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Debian_Trixie_sources.list&amp;diff=4388</id>
		<title>Debian Trixie sources.list</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Debian_Trixie_sources.list&amp;diff=4388"/>
		<updated>2025-09-24T12:00:24Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main updates and backports&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates trixie-backports&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Debian_Trixie_sources.list&amp;diff=4387</id>
		<title>Debian Trixie sources.list</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Debian_Trixie_sources.list&amp;diff=4387"/>
		<updated>2025-09-24T11:59:23Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : Page créée avec « Category:serveur Category:debian  &amp;lt;pre&amp;gt; # main and updates Types: deb URIs: https://deb.debian.org/debian Suites: trixie trixie-updates trixie-backports Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg  # security Types: deb URIs: https://security.debian.org/debian-security Suites: trixie-security Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-k... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates trixie-backports&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4386</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4386"/>
		<updated>2025-09-24T11:40:03Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Les paquets isc-dhcp sont dépréciés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Le fichier /etc/sysctl.conf n&#039;est plus appliqué==&lt;br /&gt;
&lt;br /&gt;
A partir de debian trixie, le fichier &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; n&#039;est plus lu, en faveur du fichier &amp;lt;code&amp;gt;/usr/lib/sysctl.d/50-default.conf&amp;lt;/code&amp;gt; fournit par le paquet &amp;lt;code&amp;gt;linux-sysctl-defaults&amp;lt;/code&amp;gt;. Si vous souhaitez éditer les sysctl, il faudra désormais créer un fichier &amp;lt;code&amp;gt; /etc/sysctl.d/*.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement.&lt;br /&gt;
&lt;br /&gt;
==si la commande ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4385</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4385"/>
		<updated>2025-08-15T16:45:57Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* si Ping ne fonctionne plus pour les utilisateurs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement.&lt;br /&gt;
&lt;br /&gt;
==si la commande ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4384</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4384"/>
		<updated>2025-08-15T16:45:46Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Les paquets isc-dhcp sont dépréciés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement.&lt;br /&gt;
&lt;br /&gt;
==si Ping ne fonctionne plus pour les utilisateurs==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4383</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4383"/>
		<updated>2025-08-15T16:44:06Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Mariadb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifiez dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement.&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4382</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4382"/>
		<updated>2025-08-15T16:43:58Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Mise à jour */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Mariadb==&lt;br /&gt;
&lt;br /&gt;
MariaDB ne supporte pas une récupération d&#039;erreur entre deux versions majeurs, il faut donc s&#039;assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service mariadb stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis vérifier dans les logs la présence d&#039;une ligne &amp;lt;code&amp;gt;Shutdown complete&amp;lt;/code&amp;gt;. Si ce n&#039;est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s&#039;est fait proprement.&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement.&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4381</id>
		<title>Migration de Debian Bookworm vers Trixie</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Migration_de_Debian_Bookworm_vers_Trixie&amp;diff=4381"/>
		<updated>2025-08-15T16:35:43Z</updated>

		<summary type="html">&lt;p&gt;Pfoo : /* Spécificités trixie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
[[Category:bookworm]]&lt;br /&gt;
[[Category:trixie]]&lt;br /&gt;
&lt;br /&gt;
=Préparation=&lt;br /&gt;
&lt;br /&gt;
==Assurez vous que vous êtes à la dernière version de debian==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&lt;br /&gt;
apt full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence d&#039;action en attente si vous utilisez aptitude==&lt;br /&gt;
&lt;br /&gt;
Lancez &amp;lt;code&amp;gt;aptitude&amp;lt;/code&amp;gt; puis tapez &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;~o&#039;&lt;br /&gt;
apt purge &#039;~o&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril. &amp;lt;br&amp;gt;&lt;br /&gt;
Pour les identifier :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt list &#039;?narrow(?installed, ?not(?origin(Debian)))&#039;&lt;br /&gt;
apt-forktracer | sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.&lt;br /&gt;
&lt;br /&gt;
==Supprimez les fichiers de configuration non utilisés==&lt;br /&gt;
&amp;lt;pre&amp;gt;find /etc -name &#039;*.dpkg-*&#039; -o -name &#039;*.ucf-*&#039; -o -name &#039;*.merge-error&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez le pinning==&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;code&amp;gt;/etc/apt/preferences&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/etc/apt/preferences.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vérifiez l&#039;absence de paquets cassés==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg --audit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enlevez les éventuels holds qui pourraient faire échouer la mise à jour==&lt;br /&gt;
&lt;br /&gt;
Pour identifier les paquets en hold :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-mark showhold&lt;br /&gt;
aptitude search &amp;quot;~ahold&amp;quot; &lt;br /&gt;
dpkg --get-selections | grep &#039;hold$&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un hold :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-mark unhold package_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Désactivez les entrées backports de votre sources.list==&lt;br /&gt;
&lt;br /&gt;
==Sources non officielles==&lt;br /&gt;
Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian&lt;br /&gt;
&lt;br /&gt;
=Mise à jour=&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de /etc/apt/sources.list==&lt;br /&gt;
&lt;br /&gt;
Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.&lt;br /&gt;
&lt;br /&gt;
Il faut transformer le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; et tout fichier &amp;lt;code&amp;gt;*.list&amp;lt;/code&amp;gt; situé dans &amp;lt;code&amp;gt;/etc/apt/sources.list.d/&amp;lt;/code&amp;gt; en un fichier &amp;lt;code&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier &amp;lt;code&amp;gt;debian.sources&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# main and updates&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://deb.debian.org/debian&lt;br /&gt;
Suites: trixie trixie-updates&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
# security&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://security.debian.org/debian-security&lt;br /&gt;
Suites: trixie-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour de la liste des paquets==&lt;br /&gt;
&amp;lt;pre&amp;gt;apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assure vous d&#039;avoir assez d&#039;espace libre==&lt;br /&gt;
&lt;br /&gt;
La commande suivante permet de voir l&#039;espace nécessaire pour la mise à jour :&lt;br /&gt;
&amp;lt;pre&amp;gt;apt -o APT::Get::Trivial-Only=true full-upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enregistrez les actions effectuées==&lt;br /&gt;
&lt;br /&gt;
apt loguera les packets modifiés dans &amp;lt;code&amp;gt;/var/log/apt/history.log&amp;lt;/code&amp;gt; et la sortie du terminal dans &amp;lt;code&amp;gt;/var/log/apt/term.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise à jour==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt upgrade --without-new-pkgs&lt;br /&gt;
apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si un prompt vous demande s&#039;il doit installer une nouvelle version d&#039;un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L&#039;ancien fichier restera disponible, suffixé de .dpkg-old&lt;br /&gt;
&lt;br /&gt;
=Cleanup=&lt;br /&gt;
&lt;br /&gt;
==Supprimez les paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt autoremove&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Purgez ces paquets===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~c&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Identifiez et supprimez les paquets obsolètes==&lt;br /&gt;
&lt;br /&gt;
Ce sont des paquets qui ne sont plus maintenu par debian.&lt;br /&gt;
&lt;br /&gt;
* Pour les lister :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt list &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour les supprimer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt purge &#039;~o&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Spécificités trixie=&lt;br /&gt;
&lt;br /&gt;
==Risque de modification du nom des interfaces réseaux==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change&lt;br /&gt;
&lt;br /&gt;
==Le dossier des fichiers temporaires /tmp est maintenant un tmpfs==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :&lt;br /&gt;
&amp;lt;pre&amp;gt;mount --bind / /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les anciens fichiers tmp seront dans &amp;lt;code&amp;gt;/mnt/tmp/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut, le dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; disposera de 50% de la mémoire du système. Vous pouvez modifier l&#039;espace alloué avec &amp;lt;code&amp;gt;systemctl edit tmp.mount&amp;lt;/code&amp;gt; et modifier par exemple :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=mode=1777,nosuid,nodev,size=2G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez retrouver un dossier &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; classique (sans tmpfs) :&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl mask tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
Puis redémarrer&lt;br /&gt;
&lt;br /&gt;
==Les dossiers /tmp et /var/tmp sont purgés automatiquement==&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité n&#039;est pas activé automatiquement après l&#039;upgrade. Pour l&#039;activer supprimez le fichier &amp;lt;code&amp;gt;/etc/tmpfiles.d/tmp.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -f /etc/tmpfiles.d/tmp.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après cela, les fichiers dans &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; seront automatiquement supprimé après 10 jours et les fichiers dans &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; après 30 jours&lt;br /&gt;
&lt;br /&gt;
==Les paquets isc-dhcp sont dépréciés==&lt;br /&gt;
Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet &amp;lt;code&amp;gt;isc-dhcp-client&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez ifupdown, le paquet &amp;lt;code&amp;gt;dhcpcd-base&amp;lt;/code&amp;gt; fourni un client dhcp de remplacement.&lt;br /&gt;
&lt;br /&gt;
=Appendice=&lt;br /&gt;
https://www.debian.org/releases/trixie/release-notes/upgrading.en.html&lt;/div&gt;</summary>
		<author><name>Pfoo</name></author>
	</entry>
</feed>