Aller au contenu principal

Base de connaissances

Tutoriels par OS, outils open source et ressources pour le numérique responsable.

📄

Effacer un Disque avec ShredOS

Réemploi et réparation🔴 Avancé

 Sommaire

C’est quoi ShredOS ?

ShredOS est une mini-distribution Linux conçue pour effacer complètement les disques durs ou SSD de manière sécurisée. Grâce au programme Nwipe (un fork amélioré de DBAN), tu peux supprimer toutes les données, y compris celles des disques systèmes Windows, macOS et Linux.

Pourquoi Utiliser ShredOS ?

Effacement définitif des données (même les disques systèmes)

Compatible Windows, macOS et Linux

Génération d’un certificat d’effacement unique

Système autonome : pas besoin d’un OS installé


Création d’une clé USB bootable ShredOS

Faut-il choisir MBR ou GPT ?

Lors de la création d'une clé USB bootable pour ShredOS, il est généralement recommandé d'utiliser MBR (Master Boot Record) pour garantir une meilleure compatibilité avec les BIOS et UEFI.

Pourquoi choisir MBR ?

Compatibilité maximale :

  • MBR fonctionne aussi bien avec les anciens systèmes BIOS (Legacy) et avec la plupart des systèmes UEFI en mode "CSM" (Compatibility Support Module).
  • GPT, en revanche, peut poser des problèmes avec certains BIOS Legacy, ce qui pourrait empêcher le démarrage.

MBR est le meilleur choix pour créer une clé USB bootable ShredOS afin d'assurer une compatibilité maximale avec tous les systèmes.

Plus d'infos sur le “MBR” ou le “GPT” ** Firmware PC et Table de partition**


1. Télécharger et Préparer ShredOS

  • Télécharge l’ISO ShredOS
  • Utilise un outil de création de clé USB bootable, comme :

- Rufus (Windows) → Choisir MBR comme schéma de partition. - balenaEtcher (Windows, Mac, Linux) → Pas besoin de choisir MBR ou GPT, il gère tout seul. - dd (Linux/macOS) → Copie brute, fonctionne directement. Procédure ** Tutoriel - Création d’une clé bootable avec dd**

  • Démarre sur la clé USB en modifiant l’ordre de démarrage dans le BIOS/UEFI.

2. Démarrer sur la Clé USB

  • Insére la clé USB dans l’ordinateur à effacer
  • Accéde au BIOS/UEFI (F2, F12, DEL ou ESC au démarrage) ‣
  • Change l’ordre de boot pour démarrer sur la clé USB
  • Enregistre et redémarre

ShredOS va se charger entièrement en mémoire et n’aura plus besoin de la clé USB jusqu’à la fin du processus ( si besoin d’un certificat d’effacement , laisse la clé USB branchée jusqu’a la fin du processus).


3. Lancer l’Effacement du Disque

  • Une fois ShredOS démarré, “sélectionne le disque” à efface ****(avec la touche espace)
  • Choisi une méthode d’effacement (voir section suivante )

Méthodes d’Effacement Disponibles

  Plus la méthode est complexe, plus le temps d’effacement sera long.

Méthode Description
Fill With Zeros Remplit le disque avec des 0x00 (1 passe)
Fill With Ones Remplit avec 0xFF (1 passe)
RCMP TSSIT OPS-II Méthode de la Police Montée Canadienne
DoD Short Version courte (3 passes) du DoD 5220.22-M
DoD 5220.22M Version complète (7 passes) du DoD
Gutmann Wipe Méthode avancée de Peter Gutmann (35 passes)
PRNG Stream Remplit le disque avec des nombres pseudo-aléatoires
Verify Zeros/Ones Vérifie que le disque est bien rempli de 0x00 ou 0xFF

1. Appuis sur Shift + S pour commencer l’effacement

À la fin du processus, un certificat d’effacement sera généré automatiquement sur la clé USB “si elle est restée branchée”.


Ressources


Contenu complementaire

ShredOS

ShredOS


Procédure Complète pour Créer un Certificat d'Effacement avec ShredOS

Important : Avant de commencer, assurez-vous d'avoir :
  • ShredOS : Une clé USB bootable avec ShredOS installé. Si ce n'est pas déjà fait, téléchargez l'image ISO de ShredOS depuis le site officiel et créez une clé USB bootable à l'aide d'un outil comme Rufus (pour Windows) ou Etcher (multi-plateforme).
  • Ordinateur à Effacer : L'appareil dont vous souhaitez effacer définitivement les données.
  • Accès Administratif : Assurez-vous d'avoir les droits d'administration sur l'ordinateur à effacer.

Étape 1 : Préparation (Avant de Démarrer sur ShredOS)

  1. Sauvegarde des Données Importantes :
    • Vérifiez que toutes les données importantes ont été sauvegardées ailleurs, car le processus d'effacement est irréversible.
  2. Déconnectez les Périphériques Inutiles :
    • Débranchez tous les périphériques externes non nécessaires (clés USB, disques durs externes, etc.) pour éviter toute erreur d'effacement.

Étape 2 : Démarrage sur ShredOS

  1. Insérez la Clé USB ShredOS :
    • Branchez la clé USB contenant ShredOS dans un port USB disponible de l'ordinateur à effacer.
  2. Redémarrez l’Ordinateur :
    • Redémarrez l'ordinateur. Si nécessaire, appuyez sur la touche de sélection de boot (généralement F2, F12, Del, etc.) pour accéder au menu de boot et sélectionnez la clé USB comme périphérique de boot.
  3. Sélectionnez ShredOS dans le Menu de Boot :
    • Une fois le menu de boot affiché, sélectionnez la clé USB pour démarrer ShredOS.

Étape 3 : Utilisation de ShredOS pour l’Effacement

  1. Attendez le Chargement de ShredOS :
    • Patientez pendant que ShredOS se charge. Cela devrait prendre quelques minutes.
  2. Sélectionnez la Langue :
    • Choisissez votre langue préférée dans le menu de sélection de langue.
  3. Lisez et Acceptez les Termes :
    • Prenez connaissance des termes et conditions, puis acceptez-les pour continuer.
  4. Sélectionnez le Disque à Effacer :
    • Identifiez et sélectionnez le disque dur (ou les disques) que vous souhaitez effacer. Attention : Assurez-vous de sélectionner le bon disque pour éviter toute perte de données importante.
  5. Choisissez la Méthode d’Effacement :
    • Sélectionnez une méthode d'effacement. Les options incluent généralement :
      • DoD 5220.22-M (3 passes, conforme aux standards du département de la Défense des États-Unis)
      • Gutmann (35 passes, très sécurisé mais long)
      • Quick (1 passe, rapide mais moins sécurisé)
      • Autres méthodes selon la version de ShredOS
    • Recommandation : Pour la plupart des utilisateurs, DoD 5220.22-M offre un bon équilibre entre sécurité et temps d'exécution.
  6. Confirmez l’Effacement :
    • Une fois la méthode sélectionnée, vous devrez confirmer que vous souhaitez procéder à l’effacement. Ceci est irréversible.
  7. Attendez la Fin de l’Effacement :
    • Le processus d’effacement peut prendre plusieurs heures, voire des jours, selon la taille du disque et la méthode choisie. Patientez jusqu'à ce que le processus soit terminé.

Étape 4 : Génération du Certificat d’Effacement

  1. Option de Certificat :
    • Certaines versions de ShredOS peuvent proposer la génération d’un certificat d’effacement une fois le processus terminé. Si cette option est disponible :
      • Sélectionnez Générer un Certificat d’Effacement.
      • Entrez les détails requis (nom de l’ordinateur, date, méthode d’effacement, etc.) si demandé.
      • Enregistrez le Certificat sous forme de fichier (généralement au format PDF) sur un périphérique externe ou imprimez-le.
  2. Si l’Option de Certificat n’est pas Disponible :
    • Documentez Manuellement les détails de l’effacement (date, méthode utilisée, nom de l’ordinateur, etc.) pour créer votre propre certificat. Vous pouvez utiliser un modèle de document pour structurer ces informations.

Étape 5 : Redémarrage et Vérification

  1. Redémarrez l’Ordinateur :
    • Une fois l’effacement et la génération du certificat (si applicable) terminés, redémarrez l’ordinateur.
  2. Vérifiez l’Effacement :
    • Assurez-vous que le disque est bien effacé en tentant d’accéder à ses données. Vous devriez rencontrer des erreurs ou un écran de démarrage indiquant l’absence d’un système d’exploitation.

Après la Procédure

  • Réinstallez un Système d’Exploitation si vous souhaitez rendre l’ordinateur opérationnel.
  • Conservez le Certificat d’Effacement de manière sécurisée, car il peut être requis pour des audits de sécurité ou des politiques de conformité.


----------------------------


Comment créer un serveur PXE simple pour servir une seule version de ShredOS (Mode UEFI uniquement, pas de démarrage hérité)


Prérequis

  • Un PC pour agir en tant que serveur PXE exécutant Ubuntu ou un dérivé de Debian. Pour les autres distributions, la procédure sera similaire mais les commandes peuvent différer.
  • L'OS du serveur doit idéalement être configuré avec une adresse IP statique aux fins de cette configuration.
  • Le sous-réseau réseau que j'utilise dans cette procédure est 192.168.1.0
  • IMPORTANT ! Le dernier fichier bootx64.efi de ShredOS est requis. bootx64.efi - avec support réseau

Aperçu

Le but de cette procédure est de configurer un serveur PXE très simple qui permet aux hôtes clients sur le réseau de démarrer ShredOS en mode UEFI uniquement (pas de démarrage hérité) en utilisant le propre logiciel bootx64.efi de ShredOS.
Pour ceux qui ne sont pas familiers avec PXE, cela signifie que ShredOS est hébergé sur le serveur PXE et que les PC clients du réseau extraient ShredOS sur le réseau et le chargent lorsque le démarrage PXE est sélectionné sur les PC clients. Pour maximiser la vitesse de charge, idéalement un port réseau gigabit sur le serveur, un commutateur gigabit et un port réseau client gigibit sont préférables, bien que le matériel réseau plus ancien fonctionne correctement, juste lentement.
Votre câble réseau est important. N'utilisez pas un vieux câble cat5 comme je l'ai fait lors de la réalisation de la vidéo ci-dessous, d'où la vitesse 4MB/s, utilisez le câble cat5e ou cat6 pour atteindre une vitesse maximale sur un réseau gigabit. Cependant, cela dit, peu importe les spécifications réseau que vous avez, vous ne pouvez pas atteindre une vitesse de démarrage supérieure à 4MB/s en raison d'une limitation du code tftpd. Redhat ont appliqué un patch à leur version de tftpd pour améliorer la vitesse, mais malheureusement je ne pense pas qu'il a été appliqué en amont. Donc, si vous utilisez Ubuntu, vous constaterez peut-être que votre vitesse de démarrage est limitée à 4MB/s. La seule alternative est de reconstruire tftpd vous-même en appliquant des correctifs redhats ou simplement d'utiliser redhat comme serveur PXE. Je suppose que Fedora applique aussi ces correctifs, mais je ne le sais pas avec certitude. Voici un filqui traite de l'option Windowsize TFTP RFC 7440 avec des liens vers les correctifs et une discussion sur la mise à jour de tftp-hsa dans Debian/Ubuntu.
La configuration suivante ne fournit pas de menu de démarrage dans lequel vous pouvez sélectionner différentes distributions ou plusieurs versions différentes de ShredOS. Il démarre directement dans ShredOS.
Je vais créer une discussion séparée montrant une procédure similaire qui utilise syslinux ou plus probablement grub2, car je préfère conserver les informations de progression pendant le chargement du noyau. Quelle que soit la méthode utilisée, elle fournira un système de menu et permettra à l'utilisateur de sélectionner différentes distributions ou versions de ShredOS et de démarrer dans UEFI et legacy.

Installation du Logiciel

Localisez un PC serveur approprié, de préférence avec une connexion réseau Gigabit pour maximiser la vitesse de démarrage. Une framboise PI4 répondrait à cette spécification.
  • Installez ubuntu ou un OS basé sur Debian.
  • Tout d'abord, configurez l'OS avec une adresse IP statique, il est supposé qu'une fois que vous avez installé ubuntu, vous déconnectez les routeurs Internet exécutant des serveurs DHCP sur le réseau. Ceci est fait juste pour garder les choses aussi simples que possible aux fins de cette procédure.
  • Ensuite, installez les logiciels tftp et dhcpd comme suit:
sudo apt install isc-dhcp-server tftpd-hpa

  • Vérifiez que le répertoire /srv/tftp existe. Il devrait faire comme il aurait été créé lorsque vous avez installé tftpd-hpa, cependant, s'il n'existe pas, créez-le comme suit:
sudo mkdir /srv/tftp

Configurer le logiciel serveur tftp-hpa

Examiner le contenu de/etc/default/tftpd-hpa en utilisant more et apportez des modifications pour que le fichier ressemble à ce qui suit:, notez que le chemin TFTP_DIRECTORY="/srv/tftp" est la racine où le contenu de la clé USB ShredOS sera copié plus tard dans la procédure. Assurez-vous que ce chemin est comme indiqué ci-dessous. TFTP_ADDRESS=":69" est l'adresse du port réseau, si vous avez un pare-feu, le port 69 doit être ouvert.
#>sudo more /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

Ouvrez le port 69 dans le pare-feu

  • Vérifiez si le pare-feu est activé, s'il est alors ouvert sur le port 69
sudo ufw status

  • Si actif et le port 69 ne sont pas répertoriés alors:
sudo ufw allow 69

  • Le port 69 est ouvert
sudo ufw status

Démarrer le serveur tftpd

sudo systemctl start tftpd-hpa

  • Ensuite, vérifiez qu'il fonctionne correctement et ne signale aucune erreur:
sudo systemctl status tftpd-hpa

Configuration de configuration du serveur dhcp

sudo vim /etc/dhcp/dhcp.conf

Commentez les options suivantes:
default-lease-time 600;
max-lease-time 7200;

  • Ajoutez les lignes suivantes près du haut du fichier, vous devrez déterminer l'adresse MAC de votre serveur tftp et modifier l'adresse MAC ci-dessous le cas échéant. hardware ethernet b8:ca:3a:84:eo:b9;
# ShredOS config
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.1.170 192.168.1.180;
option routers 192.168.1.1;
default-lease-time 3600;
max-lease-time 86400;

# IP address of this server hosting tftp
next-server 192.168.1.241;

# EFI file to execute
option bootfile-name "EFI/BOOT/bootx64.efi";
}

# host details of the tftpd server
host nick-tftpserver {
hardware ethernet b8:ca:3a:84:eo:b9;
fixed-address 192.168.1.241;
}

  • Trouvez la ligne nom-domaine-serveurs et passez à:
option domain-name-servers 8.8.8.8, 8.8.4.4;

  • Trouvez la ligne suivante et supprimez le préfixe de hachage, en supposant que vous n'avez pas d'autre serveur dhcp fonctionnel sur ce réseau.
#authoritative;

Reliez le serveur dhcp à un port réseau

  • Listez toutes les interfaces réseau afin que vous puissiez déterminer quel est le nom ethernet. ifconfig n'est pas installé automatiquement, alors installez net-tools qui inclut la commande ifconfig.
sudo apt install net-tools 

  • Énumérez les informations du matériel réseau pour déterminer le nom de votre interface réseau.
ifconfig 

vous pouvez également utiliser la commande ip -a pour afficher les interfaces réseau.
  • Modifiez ensuite le fichier suivant /etc/default/isc-dhcp-server
sudo vim /etc/default/isc-dhcp-server

  • Ajouter le nom du réseau à INTERFACESv4, eno1 dans mon cas:
INTERFACESv4="eno1"

Copiez tout le contenu d'une clé USB ShredOS dans /src/tftp/, changez /dev/sdx pour n'importe quel nom de lecteur correct pour la clé USB. Vous pouvez également utiliser le bureau pour monter et copier la clé USB.

sudo mount /dev/sdx /média/nick/shredos
sudo cp -rp /média/nick/shredos/* /srv/tftp/
sudo umount /média/nick/shredos

Copier le dernier bootx64.f vers /srv/tftp/EFI/BOOT/

sudo cp bootx64.efi /srv/tftp/EFI/BOOT/

Redémarrez le serveur tftp

sudo systemctl enable tftp-hpa
sudo systemctl restart tftp-hpa

Démarrer le serveur dhcp

Avertissement
Avant de démarrer le serveur isc-dhcp, assurez-vous que votre fil Ethernet est branché et que le lien est actif, c'est-à-dire que le fil est connecté à un commutateur en direct, à un routeur ou à un autre ordinateur. Si vous n'avez pas de port ethernet actif, le serveur isc-dhcp ne pourra pas démarrer et se plaindre d'une erreur de configuration.
sudo systemctl enable isc-dhcp-server
sudo systemctl start isc-dhcp-server

Voilà, vérifiez que votre bios PC client prend en charge le démarrage PXE et que le démarrage PXE est activé. Cycle d'alimentation du PC que vous souhaitez démarrer en réseau, appuyez sur les touches de raccourci pour afficher le menu de démarrage. Sélectionnez PXE V4 boot et vous devriez voir apparaître du texte et quelques secondes plus tard, les informations de progression de ShredOS lorsque le noyau ShredOS est chargé sur le réseau. Nwipe devrait apparaître. Dans la vidéo ci-dessous, le texte mentionne NBP, juste au cas où vous vous poseriez la question, il s'agit de Network Boot Program qui est EFI/BOOT/bootx64.efi dans notre cas.
 

/etc/dhcp/dhcpd.conf dans son intégralité

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
#
# ShredOS config
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.170 192.168.1.180;
option routers 192.168.1.1;
default-lease-time 3600;
max-lease-time 86400;

# IP address of this server hosting tftp
next-server 192.168.1.241;

# EFI file to execute
option bootfile-name "EFI/BOOT/bootx64.efi";

# Alternate EFI file to execute
#option bootfile-name "syslinux.efi";
}

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers 8.8.8.8, 8.8.4.4;

###default-lease-time 600;
###max-lease-time 7200;

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
#log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

#subnet 10.152.187.0 netmask 255.255.255.0 {
#}

# This is a very basic subnet declaration.

#subnet 10.254.239.0 netmask 255.255.255.224 {
# range 10.254.239.10 10.254.239.20;
# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
#}

# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.

#subnet 10.254.239.32 netmask 255.255.255.224 {
# range dynamic-bootp 10.254.239.40 10.254.239.60;
# option broadcast-address 10.254.239.31;
# option routers rtr-239-32-1.example.org;
#}

# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option subnet-mask 255.255.255.224;
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}

# Hosts which require special configuration options can be listed in
# host statements. If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.

#host passacaglia {
# hardware ethernet 0:0:c0:5d:bd:95;
# filename "vmunix.passacaglia";
# server-name "toccata.example.com";
#}

# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
# hardware ethernet 08:00:07:26:c0:a5;
# fixed-address fantasia.example.com;
#}

# You can declare a class of clients and then do address allocation
# based on that. The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.

#class "foo" {
# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
#}

#shared-network 224-29 {
# subnet 10.17.224.0 netmask 255.255.255.0 {
# option routers rtr-224.example.org;
# }
# subnet 10.0.29.0 netmask 255.255.255.0 {
# option routers rtr-29.example.org;
# }
# pool {
# allow members of "foo";
# range 10.17.224.10 10.17.224.250;
# }
# pool {
# deny members of "foo";
# range 10.0.29.10 10.0.29.230;
# }
#}


Personnalisation


Étape 1 : Préparation des Fichiers de Personnalisation

  1. Logo de l'Entreprise (Image) :
    • Assurez-vous d'avoir une version de votre logo au format d'image compatible (par exemple, PNG, JPEG).
    • Redimensionnez l'image pour qu'elle soit claire et nette à une taille raisonnable (par exemple, 200x200 pixels).
  2. Texte de Personnalisation (Optionnel) :
    • Préparez un texte personnalisé pour le certificat d'effacement, incluant les détails que vous souhaitez afficher, tels que le nom de l'entreprise, l'adresse, et toute autre information pertinente.

Étape 2 : Accès au Répertoire de Configuration de ShredOS

  1. Localisation du Répertoire :
    • Selon la version de ShredOS et votre système d'exploitation, le répertoire de configuration peut varier. Généralement, vous pouvez le trouver dans :
      • Windows : C:\Program Files\ShredOS\config ou C:\ProgramData\ShredOS\config
      • Linux/macOS : Vérifiez le dossier d'installation de ShredOS, souvent dans /opt/ShredOS/config ou ~/Library/Application Support/ShredOS/config
  2. Édition des Fichiers de Configuration :
    • Pour l'image de logo :
      • Placez votre logo personnalisé dans le répertoire de configuration et assurez-vous qu'il soit nommé de manière à être reconnu par ShredOS (généralement logo.png ou un nom spécifié dans la documentation de ShredOS).
Pour le texte personnalisé :
  • Ouvrez le fichier de configuration texte (généralement certificate.txt ou un nom similaire) dans un éditeur de texte.
  • Modifiez le texte pour inclure vos informations personnalisées. Assurez-vous de maintenir le format requis pour que le certificat soit généré correctement.




Comment créer un serveur PXE simple pour servir une seule ve

Comment créer un serveur PXE simple pour servir une seule version de ShredOS (Mode UEFI uniquement, pas de démarrage hérité)


Prérequis

  • Un PC pour agir en tant que serveur PXE exécutant Ubuntu ou un dérivé de Debian. Pour les autres distributions, la procédure sera similaire mais les commandes peuvent différer.
  • L'OS du serveur doit idéalement être configuré avec une adresse IP statique aux fins de cette configuration.
  • Le sous-réseau réseau que j'utilise dans cette procédure est 192.168.1.0
  • IMPORTANT ! Le dernier fichier bootx64.efi de ShredOS est requis. bootx64.efi - avec support réseau

Aperçu

Le but de cette procédure est de configurer un serveur PXE très simple qui permet aux hôtes clients sur le réseau de démarrer ShredOS en mode UEFI uniquement (pas de démarrage hérité) en utilisant le propre logiciel bootx64.efi de ShredOS.
Pour ceux qui ne sont pas familiers avec PXE, cela signifie que ShredOS est hébergé sur le serveur PXE et que les PC clients du réseau extraient ShredOS sur le réseau et le chargent lorsque le démarrage PXE est sélectionné sur les PC clients. Pour maximiser la vitesse de charge, idéalement un port réseau gigabit sur le serveur, un commutateur gigabit et un port réseau client gigibit sont préférables, bien que le matériel réseau plus ancien fonctionne correctement, juste lentement.
Votre câble réseau est important. N'utilisez pas un vieux câble cat5 comme je l'ai fait lors de la réalisation de la vidéo ci-dessous, d'où la vitesse 4MB/s, utilisez le câble cat5e ou cat6 pour atteindre une vitesse maximale sur un réseau gigabit. Cependant, cela dit, peu importe les spécifications réseau que vous avez, vous ne pouvez pas atteindre une vitesse de démarrage supérieure à 4MB/s en raison d'une limitation du code tftpd. Redhat ont appliqué un patch à leur version de tftpd pour améliorer la vitesse, mais malheureusement je ne pense pas qu'il a été appliqué en amont. Donc, si vous utilisez Ubuntu, vous constaterez peut-être que votre vitesse de démarrage est limitée à 4MB/s. La seule alternative est de reconstruire tftpd vous-même en appliquant des correctifs redhats ou simplement d'utiliser redhat comme serveur PXE. Je suppose que Fedora applique aussi ces correctifs, mais je ne le sais pas avec certitude. Voici un filqui traite de l'option Windowsize TFTP RFC 7440 avec des liens vers les correctifs et une discussion sur la mise à jour de tftp-hsa dans Debian/Ubuntu.
La configuration suivante ne fournit pas de menu de démarrage dans lequel vous pouvez sélectionner différentes distributions ou plusieurs versions différentes de ShredOS. Il démarre directement dans ShredOS.
Je vais créer une discussion séparée montrant une procédure similaire qui utilise syslinux ou plus probablement grub2, car je préfère conserver les informations de progression pendant le chargement du noyau. Quelle que soit la méthode utilisée, elle fournira un système de menu et permettra à l'utilisateur de sélectionner différentes distributions ou versions de ShredOS et de démarrer dans UEFI et legacy.

Installation du Logiciel

Localisez un PC serveur approprié, de préférence avec une connexion réseau Gigabit pour maximiser la vitesse de démarrage. Une framboise PI4 répondrait à cette spécification.
  • Installez ubuntu ou un OS basé sur Debian.
  • Tout d'abord, configurez l'OS avec une adresse IP statique, il est supposé qu'une fois que vous avez installé ubuntu, vous déconnectez les routeurs Internet exécutant des serveurs DHCP sur le réseau. Ceci est fait juste pour garder les choses aussi simples que possible aux fins de cette procédure.
  • Ensuite, installez les logiciels tftp et dhcpd comme suit:
sudo apt install isc-dhcp-server tftpd-hpa

  • Vérifiez que le répertoire /srv/tftp existe. Il devrait faire comme il aurait été créé lorsque vous avez installé tftpd-hpa, cependant, s'il n'existe pas, créez-le comme suit:
sudo mkdir /srv/tftp

Configurer le logiciel serveur tftp-hpa

Examiner le contenu de/etc/default/tftpd-hpa en utilisant more et apportez des modifications pour que le fichier ressemble à ce qui suit:, notez que le chemin TFTP_DIRECTORY="/srv/tftp" est la racine où le contenu de la clé USB ShredOS sera copié plus tard dans la procédure. Assurez-vous que ce chemin est comme indiqué ci-dessous. TFTP_ADDRESS=":69" est l'adresse du port réseau, si vous avez un pare-feu, le port 69 doit être ouvert.
#>sudo more /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

Ouvrez le port 69 dans le pare-feu

  • Vérifiez si le pare-feu est activé, s'il est alors ouvert sur le port 69
sudo ufw status

  • Si actif et le port 69 ne sont pas répertoriés alors:
sudo ufw allow 69

  • Le port 69 est ouvert
sudo ufw status

Démarrer le serveur tftpd

sudo systemctl start tftpd-hpa

  • Ensuite, vérifiez qu'il fonctionne correctement et ne signale aucune erreur:
sudo systemctl status tftpd-hpa

Configuration de configuration du serveur dhcp

sudo vim /etc/dhcp/dhcp.conf

Commentez les options suivantes:
default-lease-time 600;
max-lease-time 7200;

  • Ajoutez les lignes suivantes près du haut du fichier, vous devrez déterminer l'adresse MAC de votre serveur tftp et modifier l'adresse MAC ci-dessous le cas échéant. hardware ethernet b8:ca:3a:84:eo:b9;
# ShredOS config
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.1.170 192.168.1.180;
option routers 192.168.1.1;
default-lease-time 3600;
max-lease-time 86400;

# IP address of this server hosting tftp
next-server 192.168.1.241;

# EFI file to execute
option bootfile-name "EFI/BOOT/bootx64.efi";
}

# host details of the tftpd server
host nick-tftpserver {
hardware ethernet b8:ca:3a:84:eo:b9;
fixed-address 192.168.1.241;
}

  • Trouvez la ligne nom-domaine-serveurs et passez à:
option domain-name-servers 8.8.8.8, 8.8.4.4;

  • Trouvez la ligne suivante et supprimez le préfixe de hachage, en supposant que vous n'avez pas d'autre serveur dhcp fonctionnel sur ce réseau.
#authoritative;

Reliez le serveur dhcp à un port réseau

  • Listez toutes les interfaces réseau afin que vous puissiez déterminer quel est le nom ethernet. ifconfig n'est pas installé automatiquement, alors installez net-tools qui inclut la commande ifconfig.
sudo apt install net-tools 

  • Énumérez les informations du matériel réseau pour déterminer le nom de votre interface réseau.
ifconfig 

vous pouvez également utiliser la commande ip -a pour afficher les interfaces réseau.
  • Modifiez ensuite le fichier suivant /etc/default/isc-dhcp-server
sudo vim /etc/default/isc-dhcp-server

  • Ajouter le nom du réseau à INTERFACESv4, eno1 dans mon cas:
INTERFACESv4="eno1"

Copiez tout le contenu d'une clé USB ShredOS dans /src/tftp/, changez /dev/sdx pour n'importe quel nom de lecteur correct pour la clé USB. Vous pouvez également utiliser le bureau pour monter et copier la clé USB.

sudo mount /dev/sdx /média/nick/shredos
sudo cp -rp /média/nick/shredos/* /srv/tftp/
sudo umount /média/nick/shredos

Copier le dernier bootx64.f vers /srv/tftp/EFI/BOOT/

sudo cp bootx64.efi /srv/tftp/EFI/BOOT/

Redémarrez le serveur tftp

sudo systemctl enable tftp-hpa
sudo systemctl restart tftp-hpa

Démarrer le serveur dhcp

Avertissement
Avant de démarrer le serveur isc-dhcp, assurez-vous que votre fil Ethernet est branché et que le lien est actif, c'est-à-dire que le fil est connecté à un commutateur en direct, à un routeur ou à un autre ordinateur. Si vous n'avez pas de port ethernet actif, le serveur isc-dhcp ne pourra pas démarrer et se plaindre d'une erreur de configuration.
sudo systemctl enable isc-dhcp-server
sudo systemctl start isc-dhcp-server

Voilà, vérifiez que votre bios PC client prend en charge le démarrage PXE et que le démarrage PXE est activé. Cycle d'alimentation du PC que vous souhaitez démarrer en réseau, appuyez sur les touches de raccourci pour afficher le menu de démarrage. Sélectionnez PXE V4 boot et vous devriez voir apparaître du texte et quelques secondes plus tard, les informations de progression de ShredOS lorsque le noyau ShredOS est chargé sur le réseau. Nwipe devrait apparaître. Dans la vidéo ci-dessous, le texte mentionne NBP, juste au cas où vous vous poseriez la question, il s'agit de Network Boot Program qui est EFI/BOOT/bootx64.efi dans notre cas.
 

/etc/dhcp/dhcpd.conf dans son intégralité

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
#
# ShredOS config
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.170 192.168.1.180;
option routers 192.168.1.1;
default-lease-time 3600;
max-lease-time 86400;

# IP address of this server hosting tftp
next-server 192.168.1.241;

# EFI file to execute
option bootfile-name "EFI/BOOT/bootx64.efi";

# Alternate EFI file to execute
#option bootfile-name "syslinux.efi";
}

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers 8.8.8.8, 8.8.4.4;

###default-lease-time 600;
###max-lease-time 7200;

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
#log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

#subnet 10.152.187.0 netmask 255.255.255.0 {
#}

# This is a very basic subnet declaration.

#subnet 10.254.239.0 netmask 255.255.255.224 {
# range 10.254.239.10 10.254.239.20;
# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
#}

# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.

#subnet 10.254.239.32 netmask 255.255.255.224 {
# range dynamic-bootp 10.254.239.40 10.254.239.60;
# option broadcast-address 10.254.239.31;
# option routers rtr-239-32-1.example.org;
#}

# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option subnet-mask 255.255.255.224;
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}

# Hosts which require special configuration options can be listed in
# host statements. If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.

#host passacaglia {
# hardware ethernet 0:0:c0:5d:bd:95;
# filename "vmunix.passacaglia";
# server-name "toccata.example.com";
#}

# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
# hardware ethernet 08:00:07:26:c0:a5;
# fixed-address fantasia.example.com;
#}

# You can declare a class of clients and then do address allocation
# based on that. The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.

#class "foo" {
# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
#}

#shared-network 224-29 {
# subnet 10.17.224.0 netmask 255.255.255.0 {
# option routers rtr-224.example.org;
# }
# subnet 10.0.29.0 netmask 255.255.255.0 {
# option routers rtr-29.example.org;
# }
# pool {
# allow members of "foo";
# range 10.17.224.10 10.17.224.250;
# }
# pool {
# deny members of "foo";
# range 10.0.29.10 10.0.29.230;
# }
#}