2009-07-10 21 views
3

Grâce à un peu de creuser, j'ai découvert comment définir et obtenir le nom de volume d'une partition ext3 sur ma boîte Linux:Méthode efficace pour interroger ou définir le nom de volume d'une partition ext3 sous Linux?

mettre l'étiquette de volume

tune2fs -L MY-NEW-NOM/dev/disque/par chemin/pci-0000: 00: 1f.2-scsi-2: 0: 0: 0-part1

obtenir le niveau actuel de volume de

dumpe2fs -h/dev/disque/par chemin/pci-0000: 00: 1f.2-scsi-2: 0: 0: 0-part1 | « Nom de volume » grep

Ceux de fin de travail, mais j'ai plusieurs questions:

1) sont les commandes de la meilleure façon de définir/obtenir le nom de volume? Ou y a-t-il une méthode plus simple que je ne connais pas?

2) Quelle est la probabilité de changer l'étiquette d'un volume pour casser quelque chose? c'est-à-dire qu'un système Linux standard repose sur des volumes ayant certains noms? Ou puis-je renommer des volumes à n'importe quel nom, sans causer de problèmes?

3) À un moment donné, je voudrais inclure dans mon programme une interface graphique pour la fonctionnalité ci-dessus. Une façon de le faire serait d'avoir mon programme exécuter les commandes shell ci-dessus (via system() ou autre), mais cela semble un peu maladroit et lourd ... y at-il des fonctions directes que je peux appeler pour faire la même chose? Si c'est vrai, que sont-ils?

Merci, Jeremy

Répondre

1

1) Qu'en est-e2label?
2) La commande 'mount' permet d'identifier les périphériques via leur label, donc changer une étiquette peut casser quelque chose dans/etc/fstab .. De toute façon normalement ils ne sont pas utilisés. (Au moins sur Ubuntu et Fedora IIRC)
3) Quelle langue utilisez-vous? Quoi qu'il en soit, il semble que e2label n'utilise aucune API particulière .. Il lit et écrit directement sur l'appareil

+0

Le noyau ne s'en soucie pas du tout, mais les scripts d'initialisation et mount (fstab) le peuvent. – ephemient

+1

/sbin/vol_id --label - Fonctionne sur d'autres systèmes de fichiers que extN. –

+0

Je vois, je vais mettre à jour la réponse, merci :) – Joril