Comment recueillir des informations complètes sur le disque sous Linux
Comprendre la configuration des disques et l'état de santé de votre système Linux est important pour l'administration du système, le dépannage et l'optimisation. Dans cet article de blog, nous vous guiderons à travers un processus détaillé pour afficher ou rassembler des informations complètes sur les disques sous Linux en utilisant des utilitaires populaires comme parted, inxi et lsblk.
À la fin de ce guide, vous aurez une compréhension claire de la façon de collecter et d'analyser les données du disque, ce qui peut être utile pour maintenir et optimiser votre environnement Linux.
Commençons.
Guide étape par étape pour recueillir des informations sur le disque sous Linux
1. Préparer le fichier de sortie
La première étape consiste à créer un fichier texte où toutes les informations sur le disque seront stockées. Ce fichier sera situé dans votre répertoire personnel et nommé drives.txt.
echo —PARTED DISK INFO— > /home/$USER/diskinfo.txt 2>&1Cette commande initialise le fichier diskinfo.txt avec un en-tête indiquant que les informations suivantes seront liées aux partitions de disque.
2. Utilisation de parted pour lister les partitions du disque
Ensuite, nous utilisons l'utilitaire parted pour lister toutes les partitions de disque sur le système. Cette commande nécessite des privilèges de superutilisateur, donc nous utilisons sudo.
sudo parted -ls >> /home/$USER/diskinfo.txt 2>&1La sortie de cette commande est ajoutée au fichier drives.txt, fournissant des informations détaillées sur chaque partition de disque.
3. Récupération des informations sur le disque avec inxi
L'utilitaire inxi est un outil puissant pour recueillir des informations sur le système, y compris des données détaillées sur les disques. Nous ajoutons la sortie de inxi à notre fichier diskinfo.txt.
echo —INXI DISK INFO— >> /home/$USER/diskinfo.txt 2>&1
sudo inxi -DpRjlLoux >> /home/$USER/diskinfo.txt 2>&1Cette commande fournit non seulement des informations sur le disque, mais inclut également des détails sur les processus, les ressources système et plus encore.
4. Lister les périphériques de bloc avec lsblk
Enfin, nous utilisons l'utilitaire lsblk pour lister les périphériques de bloc, y compris des informations détaillées sur le système de fichiers et les permissions.
echo —LSBLK DISK INFO— >> /home/$USER/diskinfo.txt.txt
sudo lsblk -fm >> /home/$USER/diskinfo.txt 2>&1Cette commande ajoute les informations sur le périphérique de bloc à notre fichier diskinfo.txt, complétant ainsi le processus de collecte.
Analyse des données collectées
Une fois que le fichier diskinfo.txt est généré, vous pouvez l'ouvrir avec n'importe quel éditeur de texte pour analyser les informations du disque.
Le fichier contiendra des sections étiquetées avec des en-têtes tels que «—PARTED DISK INFO—», «—INXI DISK INFO—» et «—LSBLK DISK INFO—».
Chaque section fournit différentes perspectives sur la configuration du disque, vous permettant de faire des références croisées et de vérifier les données.
Voici le contenu du fichier diskinfo.txt sur mon système Debian 12 :
—PARTED DISK INFO—
Model: JMicron Generic (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1000GB 1000GB primary boot
2 1000GB 1000GB 33.6MB primary fat16 esp
Model: WD_BLACK SN750 SE 500GB (nvme)
Disk /dev/nvme0n1: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot, esp
2 538MB 499GB 499GB ext4
3 499GB 500GB 1023MB linux-swap(v1) swap
—INXI DISK INFO—
Logical:
Message: No logical block device data found.
RAID:
Message: No RAID data found.
Drives:
Local Storage: total: 1.36 TiB used: 1.05 TiB (77.0%)
ID-1: /dev/nvme0n1 vendor: Western Digital model: WD BLACK SN750 SE 500GB
size: 465.76 GiB temp: 38.9 C
ID-2: /dev/sda type: USB vendor: Western Digital model: WDS100T2G0A-00JH30
size: 931.51 GiB
Partition:
ID-1: / size: 455.95 GiB used: 269.25 GiB (59.1%) fs: ext4
dev: /dev/nvme0n1p2 label: N/A uuid: 99406049-9ff5-47d1-a1ce-d5e27cd859c0
ID-2: /boot/efi size: 511 MiB used: 9.2 MiB (1.8%) fs: vfat
dev: /dev/nvme0n1p1 label: N/A uuid: CF87-3143
ID-3: /etc/pve size: 128 MiB used: 16 KiB (0.0%) fs: fuse dev: /dev/fuse
label: N/A uuid: N/A
ID-4: /media/ostechnix/SK_WD_SSD size: 931.45 GiB used: 806.62 GiB (86.6%)
fs: exfat dev: /dev/sda1 label: SK_WD_SSD uuid: 2A81-C276
Swap:
ID-1: swap-1 type: partition size: 976 MiB used: 256 KiB (0.0%)
dev: /dev/nvme0n1p3 label: N/A uuid: 1ff239fc-674c-4749-9c73-fe5d0668071a
Unmounted:
ID-1: /dev/sda2 size: 32 MiB fs: vfat label: VTOYEFI uuid: 5A89-BA75
—LSBLK DISK INFO—
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS SIZE OWNER GROUP MODE
sda 931.5G root disk brw-rw----
├─sda1 exfat 1.0 SK_WD_SSD 2A81-C276 124.8G 87% /media/ostechnix/SK_WD_SSD 931.5G root disk brw-rw----
└─sda2 vfat FAT16 VTOYEFI 5A89-BA75 32M root disk brw-rw----
nvme0n1 465.8G root disk brw-rw----
├─nvme0n1p1 vfat FAT32 CF87-3143 501.8M 2% /boot/efi 512M root disk brw-rw----
├─nvme0n1p2 ext4 1.0 99406049-9ff5-47d1-a1ce-d5e27cd859c0 163.5G 59% / 464.3G root disk brw-rw----
└─nvme0n1p3 swap 1 1ff239fc-674c-4749-9c73-fe5d0668071a [SWAP] 976M root disk brw-rw----Automatiser la collecte d'informations sur le disque en utilisant le script Diskinfo
Ci-dessous se trouve un script Bash qui automatise le processus de collecte d'informations sur le disque en utilisant les utilitaires parted, inxi et lsblk.
Le script invite l'utilisateur à choisir s'il souhaite enregistrer la sortie dans un fichier ou l'afficher dans la sortie standard.
Il vérifie également si les commandes requises sont installées et fournit des instructions sur la façon de les installer si elles manquent.
Script : diskinfo.sh
#!/usr/bin/env bash
# ------------------------------------------------------------------
# Script Name: DiskInfo
# Description: A Bash Script to gather comprehensive
# Disk information on Linux.
# Website: https://gist.github.com/ostechnix
# Version: 1.0
# Usage: ./diskinfo.sh
# ------------------------------------------------------------------
# Ensure `sudo` is authenticated at the beginning
echo "This script requires elevated privileges to run certain commands."
sudo -v || { echo "Error: You must provide sudo privileges to run this script."; exit 1; }
# Add `/sbin` and `/usr/sbin` to PATH to ensure command detection
export PATH=$PATH:/sbin:/usr/sbin
# Function to check if a command exists
check_command() {
if ! command -v "$1" &> /dev/null; then
echo "Error: '$1' is not installed or not accessible."
missing_commands+=("$1")
fi
}
# Function to gather disk information
gather_disk_info() {
echo "==================================================="
echo
echo "-- PARTED DISK INFO --"
echo "----------------------"
sudo parted -ls
echo
echo "-- INXI DISK INFO --"
echo "--------------------"
sudo inxi -DpRjlLoux
echo
echo "-- LSBLK DISK INFO --"
echo "---------------------"
sudo lsblk -fm
echo
echo "==================================================="
}
# Check for required commands
missing_commands=()
check_command "parted"
check_command "inxi"
check_command "lsblk"
# If any command is missing, prompt the user to install them
if [ ${#missing_commands[@]} -ne 0 ]; then
echo "The following commands are required but not installed: ${missing_commands[*]}"
echo "Please install them using your package manager. For example:"
echo " sudo apt install parted inxi util-linux # For Debian/Ubuntu"
echo " sudo dnf install parted inxi util-linux # For Fedora/RHEL"
echo " sudo pacman -S parted inxi util-linux # For Arch Linux"
exit 1
fi
# Prompt the user for their choice
echo "Do you want to save the disk information to a file or display it on the terminal?"
echo "Enter '1' to save to a file or '2' to display on the terminal."
read -p "Your choice (1/2): " choice
if [[ "$choice" == "1" ]]; then
# Save the output to a file
output_file=~/diskinfo.txt
{
echo
echo "-- PARTED DISK INFO --"
echo "----------------------"
sudo parted -ls
echo
echo "-- INXI DISK INFO --"
echo "--------------------"
sudo inxi -DpRjlLoux
echo
echo "-- LSBLK DISK INFO --"
echo "---------------------"
sudo lsblk -fm
echo
echo "==================================================="
} > "$output_file" 2>&1
echo "Disk information has been saved to $output_file"
elif [[ "$choice" == "2" ]]; then
# Display the output in the terminal
gather_disk_info
else
echo "Invalid choice. Please run the script again and choose either '1' or '2'."
exit 1
fiAfficher ou enregistrer les informations du disque dans un fichier en utilisant le script Diskinfo
Copiez le script ci-dessus dans un fichier nommé diskinfo.sh.
Exécutez la commande suivante pour rendre le script exécutable :
chmod +x diskinfo.shExécutez le script en lançant :
./diskinfo.shCe script enregistrera les informations détaillées sur le disque dans un fichier texte nommé diskinfo.txt dans votre répertoire HOME.
Vous pouvez également déplacer le script vers le PATH de votre système et l'exécuter depuis n'importe où. Les choix courants incluent /usr/local/bin ou /usr/bin. Par exemple :
sudo mv diskinfo.sh /usr/local/bin/diskinfoRedémarrez votre session de shell actuelle ou déconnectez-vous et reconnectez-vous. Dorénavant, vous pouvez simplement exécuter la commande diskinfo depuis n'importe où pour afficher des informations complètes sur votre disque.
Explication du script :
check_commandFonction : Cette fonction vérifie si une commande est installée. Sinon, elle fournit des instructions d'installation et termine le script.- Invite de l'utilisateur : Le script invite l'utilisateur à choisir entre enregistrer la sortie dans un fichier ou l'afficher dans la sortie standard.
- Gestion de la sortie : Selon le choix de l'utilisateur, le script enregistre soit la sortie dans un fichier (
diskinfo.txtdans le répertoire personnel de l'utilisateur) soit l'affiche directement dans le terminal. - Gestion des erreurs : Le script vérifie la présence des commandes nécessaires (
parted,inxi,lsblk) et fournit des instructions d'installation si l'une d'entre elles est manquante.
Ce script automatise le processus de collecte des informations sur le disque et fournit une interface conviviale permettant de choisir la méthode de sortie.
Il garantit également que tous les outils requis sont installés, ce qui facilite le dépannage et la maintenance des systèmes Linux par les utilisateurs.
Conclusion
Dans ce guide, nous avons appris une approche étape par étape pour recueillir des informations sur le disque sous Linux en utilisant les utilitaires parted, inxi et lsblk. Ces utilitaires vous aideront à collecter et analyser efficacement les données des disques dans n'importe quelle distribution Linux.
Nous avons également fourni un script Bash simple pour automatiser ce processus. J'espère que cela aide.
Lecture connexe :
- Analyse de l'espace disque simplifiée : Comprendre les commandes df et du sous Linux
- Comment Trouver les Détails du Disque Dur sous Linux
- Comment Trouver les Détails du Système Linux en Utilisant inxi
- Comment trouver les spécifications matérielles sur Linux
- Trouver les informations matérielles du système Linux avec Hwinfo
- Neofetch - Affichez les informations de votre système Linux
- Trouver les détails du système Linux en utilisant Python