Créer un système LVM sur disque USB

Bonjour,
J’ai créé une seule partition ext4 avec le drapeau lvm sur mon disque USB

Mais si blkid affiche:

/dev/sdc1: LABEL="Seagate4T" UUID="aaadb0c6-c67c-49d3-9ab1-1cc3137f05ca" TYPE="ext4" PARTUUID="5cae9e94-c96b-452b-96b5-9fdf61073cd5"

Les commandes suivantes

# pvcreate /dev/hdc
# pvcreate /dev/hdc1
# vgcreate SeagateUSB4T /dev/hdc1

renvoient:

Device /dev/hdc (ou hdc1) not found.

[Suite]

# mount -text4 /dev/sdc  /mnt/Seagate4T/

renvoie:

mount: /mnt/Seagate4T: mauvais type de système de fichiers, option erronée, superbloc erroné sur /dev/sdc, page de code ou programme auxiliaire manquant, ou autre erreur.

C’est sdc et pas hdc!

Aïe aïe
La première commande écrase ou cache la table de partition. Vous avez créé un volume physique lvm sur tout le disque.
Autrement dit, vous n’avez qu’un seul bloc de x Go pour tout le disque /dev/sdc.
Avec lvm la logique de partitionnement est très différente de ce que vous avez cru faire avec prted ou fdisk ou …
Vérifiez ce qu’il en est :

pvs
pvdisplay /dev/sdc

Intégrez votre seil pv dans un volume group

vgcreate usb4T_vg /dev/sdc
vgs

Et « partitionnez » en volume(s) logique(s) (linear LV le plus simple)

lvcreate  --size 400G --name archiveèlv usb4T_vg
lvcreate --size 200G --name travail_lv usb4T_vg

par exemple, ce qui vous crée deux blocs de 400 et 200G accessibles via
/dev/usb4T_vg/archive_lv et /dev/usb4T_vg/travail_lv suivis d’grand espace libre (plus de 3T ) qui peuvent servir à agrandir les LV créés ou en créer d’autres.
Ce n’est qu’ensuite que vous pouvez formater les LVs

mkfs.xfs /dev/usb4T_vg/archive_lv
mkdir /archives
mount /dev/usb4T_vg/archive_lv /archives

Exemple d’utilisation de tout un disque avec lvm

fp2@debpacha:~ $ sudo pvdisplay /dev/sdb
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               pacha_vg
  PV Size               931,51 GiB / not usable 1,71 MiB
  Allocatable           yes
  PE Size               4,00 MiB
  Total PE              238467
  Free PE               199555
  Allocated PE          38912
  PV UUID               EuVnyy-3k2u-Wba1-ZTOi-0uBn-wpcw-rkorHe

1& fp2@debpacha:~ $
fp2@debpacha:~ $ sudo fdisk -l  /dev/sdb
Disque /dev/sdb : 931,5 GiB, 1000204886016 octets, 1953525168 secteurs
Modèle de disque : HGST HTS721010A9
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
1& fp2@debpacha:~ $

Liste des volumes physiques

sudo pvs
  PV         VG       Fmt  Attr PSize    PFree
  /dev/sda2  pacha_vg lvm2 a--  <109,79g <75,79g
  /dev/sdb   pacha_vg lvm2 a--   931,51g 779,51g
1& fp2@debpacha:~ $

Liste volume group

sudo vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  pacha_vg   2   6   0 wz--n- <1,02t <855,30g
1& fp2@debpacha:~ $

Eh oui ! avec deux PVs sur des disques physiques différents, on peut avoir un seul VG
Le groupe de volume put être cloisonné en plusieurs LVs

sudo lvs
  LV      VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data_lv pacha_vg -wi-ao---- 128,00g                                          
  home_lv pacha_vg -wi-ao----  24,00g                                          
  root_lv pacha_vg -wi-ao----  10,00g                                          
  swap_lv pacha_vg -wi-ao----  12,00g                                          
  tmp_lv  pacha_vg -wi-ao----   8,00g                                          
  var_lv  pacha_vg -wi-ao----   4,00g                                          
1& fp2@debpacha:~ $

Utilisation des LVs et types de système de fichiers

df -hTx tmpfs
Sys. de fichiers             Type     Taille Utilisé Dispo Uti% Monté sur
udev                         devtmpfs   3,9G       0  3,9G   0% /dev
/dev/mapper/pacha_vg-root_lv ext4       9,8G    7,2G  2,2G  78% /
/dev/sda1                    ext4       2,0G     97M  1,7G   6% /boot
/dev/mapper/pacha_vg-home_lv ext4        24G     17G  6,4G  73% /home
/dev/mapper/pacha_vg-tmp_lv  xfs        8,0G     42M  8,0G   1% /tmp
/dev/mapper/pacha_vg-var_lv  xfs        4,0G   1005M  3,1G  25% /var
/dev/mapper/pacha_vg-data_lv ext4       125G     44G   80G  36% /data
1& fp2@debpacha:~ $

Le disque /dev/sda est partitionné classiquement pour pouvoir amorcer sur ce disque. La partition sda1 est d’ailleurs beaucoup trop grande.

La table fstab

/dev/mapper/pacha_vg-root_lv /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=6b25f8fd-780e-4be5-bcf4-e121061b3b60 /boot           ext4    defaults        0       2
/dev/mapper/pacha_vg-data_lv /data           ext4    defaults        0       2
/dev/mapper/pacha_vg-home_lv /home           ext4    defaults        0       2
/dev/mapper/pacha_vg-tmp_lv /tmp            xfs     defaults        0       0
/dev/mapper/pacha_vg-var_lv /var            xfs     defaults        0       0
/dev/mapper/pacha_vg-swap_lv none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

En résumé :
L’idée d’utiliser lvm pour un disque amovible peut être judicieux. Ne pas oublier les bonnes options de montage (noauto) ou plus simplement configurez un montage automatique (automount paquet autofs) pour les systèmes de fichiers concernés.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

Merci

Je n’ai fait que

vgcreate  SeagateUSB4T /dev/sdc1 

puis:

lvcreate -nbkp -L2100G SeagateUSB4T
lvcreate -nCD -L1000G SeagateUSB4T

car les commandes tentées avec hdc n’ont (heureusement) pas fonctionné.

root@pclf-w970suw:/etc/udev/rules.d# pvs
  Error reading device /dev/SeagateUSB4T/bkp at 0 length 512.
  Error reading device /dev/SeagateUSB4T/bkp at 0 length 4096.
  Error reading device /dev/SeagateUSB4T/CD at 0 length 512.
  Error reading device /dev/SeagateUSB4T/CD at 0 length 4096.
  PV         VG           Fmt  Attr PSize    PFree   
  /dev/sdb2  VG_1         lvm2 a--  <916,61g   36,62g
  /dev/sdd1  SeagateUSB4T lvm2 a--    <3,64t <626,02g
root@pclf-w970suw:/etc/udev/rules.d# 
root@pclf-w970suw:/etc/udev/rules.d# pvdisplay /dev/sdd
  Error reading device /dev/SeagateUSB4T/bkp at 0 length 512.
  Error reading device /dev/SeagateUSB4T/bkp at 0 length 4096.
  Error reading device /dev/SeagateUSB4T/CD at 0 length 512.
  Error reading device /dev/SeagateUSB4T/CD at 0 length 4096.
  Failed to find device for physical volume "/dev/sdd

(après reconnection, c’est devenu /dev/sdd)

# vgcreate usb4T_vg /dev/sdd
  Error reading device /dev/SeagateUSB4T/bkp at 0 length 512.
  Error reading device /dev/SeagateUSB4T/bkp at 0 length 4096.
  Error reading device /dev/SeagateUSB4T/CD at 0 length 512.
  Error reading device /dev/SeagateUSB4T/CD at 0 length 4096.
  Device /dev/sdd excluded by a filter.

Avant déconnection, lsblk -fs affiche:

...
sdc                                                                                                
└─sdc1               LVM2_member             i3ieLQ-126L-S0O0-n00X-4reI-6YE2-qhYpTT                
  ├─SeagateUSB4T-bkp                                                                               
  └─SeagateUSB4T-CD                                                                                
...

et après reconnection:

...
sdd1           LVM2_member             i3ieLQ-126L-S0O0-n00X-4reI-6YE2-qhYpTT                
└─sdd  
...
SeagateUSB4T-bkp
                                                                                             
SeagateUSB4T-CD
...

dois-je recréer une table de partition avec gparted, puis créer une nouvelle partition unique ?

Quel est ton but, pourquoi veux-tu LVM sur un disque amovible ?

Pour avoir 2 partitions faciles à redimensionner à chaud

(Depuis longtemps, j’utilise XFS pour les données et ext4 pour le système. Mais XFS ne permet que d’agrandir la partition, pas de la réduire)

OK. Donc table de partition, partition unique, pvcreate sur la partition, vgcreate « groupe de volumes » sur la partition, lvcreate volumes logiques dans « groupe de volumes ».
Pas de « - » dans les noms de groupe et volume, que des « _ ».

Grand merci PascalHambourg!

La table de partitions de type msdos renvoie un échec; quel type de table de partitions faut-il choisir?
J’ai mis gpt, proposé par gparted.

( 4To )

partition length of 7814033408 sectors exceeds the msdos-partition-table-imposed maximum of 4294967295

Tout a fonctionné, jusqu’au moment de créer les systèmes de fichier sur les volumes logiques.

gparted n’affiche que sdc1 et pas les volumes logiques, qu’il affiche pourtant dans les propriétés de sdc1.

Comment accéder à ces LV pour créer ces systèmes de fichiers ?

gparted /dev/mapper/seagateUSB4T-bkp

mais gparted demande une table de partition! pour ce volume logique (est-ce bien logique?)

Finalement je fais:
mke2fs -t ext4 -L BKP_2To -U time -v /dev/mapper/seagateUSB4T-bkp

ET ENFIN ÇA MARCHE!

grâce à votre aide, encore merci 1000 fois, littlejohn75 et pascalhambourg

Effectivement avec des secteurs logiques de 512 octets la table de partition DOS est limitée à 2 Tio. On peut truander en créant une première partition de 0 à 2 Tio et une seconde partition de 2 Tio à 4 To (réunies ensuite par LVM dans le même VG), Linux le supporte, mais c’est techniquement limite et je ne suis pas sûr que les partitionneurs usuels le permettent.

Un autre moyen techniquement correct de s’affranchir de cette limitation est de ne pas créer de table de partition et d’utiliser directement le disque entier comme PV LVM. Cependant à titre personnel je trouve plus lisible de créer une table de partition même pour une seule partition.

Le format GPT, successeur et remplaçant du format DOS, permet de dépasser les limitations de ce dernier.

Encore gparted, toujours gparted… Mais qu’est-ce que vous avez tous a vouloir toujours utiliser gparted pour formater tout et n’importe quoi ? Il faut bien se mettre dans le crâne que gparted est avant tout un éditeur de partitions. Il sait faire quelques trucs en plus comme formater une partition (en fait appeler le programme qui sait le faire) mais LVM et les autres types de volumes logiques ce n’est pas son truc. Est-ce que tuas créé les volumes logiques avec gparted ? Non ! Alors pourquoi vouloir les formater avec Gparted ?

Evidemment ! gparted est un éditeur de partition. Il te propose ce qu’il sait faire, pas ce que tu veux faire. Si tu lui donnes un volume, il va vouloir y créer une table de partition.

La bonne méthode pour formater n’importe quoi, c’est d’utiliser directement les outils de formatage mkfs.<filesystem>. Ça marche partout, même dans les environnements les plus dépouillés.

Au fait, tu as bien laissé plein d’espace libre dans le VG, tu n’as pas tout alloué aux deux LV ?

lol…et relol

ps: bon je sais mon commentaire n’est pas constructif mais tu m’as vraiment fait rire :smile:

gparted ne sait pas correctement gérer les volumes LVM car en effet lui ne gère que des partitions D’ailleurs quand sous l’interface tu essaye de supprimer une partition LVM dans laquelle il y a plusieurs LV il ne sait pas faire.

Ca fait un bail que je n’utilise plus gparted ou parted

Alors qu’est-ce qu’il faut utiliser? (en général, pas spécialement pour LVM qui a son jeu de commandes)

fdisk
et les commandes vg, lv, pv

Tiens un super tuto

https://www.linuxsysadmins.com/create-logical-volume-filesystem-in-linux/

Il faut utiliser un outil adapté au besoin. J’utilise régulièrement fdisk, gdisk, parted, sfdisk… Chacun a des fonctionnalités que les autres n’ont pas. Gparted est irremplaçable pour déplacer une partition avec son contenu.

Merci Pascalhambourg, voila de bons repères.
Je crois que gparted n’est qu’une interface de parted, ou bien en fait-il plus ?

Alors:
fdisk, gdisk,sfdisk pour formater un disque ?
parted et gparted pour créer et manipuler des partitions ?
outils lvm entre ces deux «couches», si ce mot vous semble pertinent (et que fait le drapeau lvm proposé sur gparted)?