GNU/Linux >> Tutoriels Linux >  >> Linux

Manière scriptable d'identifier la nième partition d'un disque ?

Supposons que j'ai un disque situé à /dev/DISK_NAME . Je suis curieux de savoir s'il existe une commande pour trouver le n ème partition de ce disque.

Il semble que ce genre de chose devrait être possible avec lsblk . Le mieux que je puisse trouver est :

lsblk -nlpo NAME,TYPE /dev/DISK_NAME | awk '/part$/ {print $1}' | grep "[^0-9]n$"

Ici, le n dans le dernier grep représente le numéro de partition en question.

La commande ci-dessus fonctionne pour la machine arch Linux sur laquelle je suis actuellement, où DISK_NAME=sda et la sortie de lsblk -nlpo NAME,TYPE est

/dev/sda  disk
/dev/sda1 part
/dev/sda2 part
/dev/sda3 part
/dev/sda5 part

Ma commande fonctionne également sur ma machine arch Linux où DISK_NAME=nvme0n1 et la sortie de lsblk -nlpo NAME,TYPE est

/dev/nvme0n1   disk
/dev/nvme0n1p1 part
/dev/nvme0n1p2 part

Pourtant, cela semble plutôt piraté, et je ne suis pas sûr que cela fonctionnerait sur un disque arbitraire.

Existe-t-il de meilleures façons de procéder ?

Réponse acceptée :

Il n'y a aucune garantie que sda1 existe du tout - j'ai un SSD avec seulement sda4 et sda5. Alors, la première partition serait-elle celle avec le LBA de démarrage le plus bas ?

Ou peut-être la première entrée de la table de partition ? Selon parted -l ,

...
Number  Start  End    Size    File system  Name                   Flags
 2      316MB  333GB  333GB   ext4         /mnt/backup
 3      333GB  791GB  457GB   ext4         /mnt/filestore
 4      791GB  832GB  41.9GB  ext4         /run/timeshift/backup
 1      832GB  841GB  8590MB  ext4         /mnt/music

Quelle est la première partition - est-ce 2 (qui a le LBA le plus bas) ou est-ce 1 (qui a le plus petit numéro de partition).

Si vous préférez l'ancien fdisk -l , cela triera la table des partitions pour vous [afin que les partitions les plus petites viennent en premier].


Linux
  1. Façon de synchroniser une seule partition ?

  2. Le moyen le plus rapide d'extraire un iso ?

  3. Comment savoir si le système spécifique a besoin d'une partition de démarrage ?

  4. Le moyen le plus simple de fusionner / et /home ?

  5. Sur quelle partition le chargeur de démarrage est-il installé ?

Comment créer des partitions sous Linux

Commandes séparées pour gérer la partition de disque

Configuration de la partition LVM sur le serveur Linux

Tout est un fichier sous Linux - Partie 2

Comment chiffrer une partition sous Linux

Comment créer des partitions de disque sous Linux