Comment répertorier la partition non montée d'un disque dur et les monter?


Réponses:


43

Liste des partitions non montées

Pour répondre à la liste des partitions avec gomme partie, il existe plusieurs façons - lsblk, fdisk, parted, blkid.

$ lsblk
NAME                             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                                8:0    0 111.8G  0 disk 
└─sda1                             8:1    0 111.8G  0 part /
sdb                                8:16   0 232.9G  0 disk 
├─sdb1                             8:17   0   1.5G  0 part 
├─sdb2                             8:18   0 138.6G  0 part /media/WINDOWS
├─sdb3                             8:19   0   8.1G  0 part 
├─sdb4                             8:20   0     1K  0 part 
├─sdb5                             8:21   0  68.5G  0 part 
└─sdb6                             8:22   0   5.8G  0 part 
loop0                              7:0    0   100G  0 loop 
└─docker-8:1-1589297-pool (dm-0) 252:0    0   100G  0 dm   
loop1                              7:1    0     2G  0 loop 
└─docker-8:1-1589297-pool (dm-0) 252:0    0   100G  0 dm   
$ sudo fdisk -l
[sudo] password for xieerqi: 

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b5321

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   234440703   117219328   83  Linux

Disk /dev/sdb: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x96360d50

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048     3074047     1536000   27  Hidden NTFS WinRE
/dev/sdb2         3074048   293617502   145271727+   7  HPFS/NTFS/exFAT
/dev/sdb3       471437312   488396799     8479744   17  Hidden HPFS/NTFS
/dev/sdb4       293617662   471437311    88909825    5  Extended
/dev/sdb5       315830272   459382783    71776256   83  Linux
/dev/sdb6       459384832   471437311     6026240   82  Linux swap / Solaris

Partition table entries are not in disk order

Disk /dev/mapper/docker-8:1-1589297-pool: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders, total 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/docker-8:1-1589297-pool doesn't contain a valid partition table
$ sudo parted -l                                                               
[sudo] password for xieerqi: 
Model: ATA Radeon R7 (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  120GB  120GB  primary  ext4         boot


Model: ATA TOSHIBA MK2555GS (scsi)
Disk /dev/sdb: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  1574MB  1573MB  primary   ntfs            boot, diag
 2      1574MB  150GB   149GB   primary   ntfs
 4      150GB   241GB   91.0GB  extended
 5      162GB   235GB   73.5GB  logical   ext4
 6      235GB   241GB   6171MB  logical   linux-swap(v1)
 3      241GB   250GB   8683MB  primary   ntfs            hidden


Model: Linux device-mapper (thin-pool) (dm)
Disk /dev/mapper/docker-8:1-1589297-pool: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0.00B  107GB  107GB  ext4


$ sudo blkid
[sudo] password for xieerqi: 
/dev/sda1: UUID="86df21bf-d95f-435c-9292-273bdbcba056" TYPE="ext4" 
/dev/sdb1: LABEL="System" UUID="F4F688B2F68876A0" TYPE="ntfs" 
/dev/sdb2: LABEL="TI105866W0A" UUID="4EBAAE53BAAE36FD" TYPE="ntfs" 
/dev/sdb3: LABEL="HDDRECOVERY" UUID="BC4ED40D4ED3BDF8" TYPE="ntfs" 
/dev/sdb5: UUID="0ca7543a-5463-4a07-8bbe-233a7b0bd625" TYPE="ext4" 
/dev/sdb6: UUID="3a6e2270-19a2-49d7-aab3-5efb92d3b3d0" TYPE="swap" 
/dev/loop0: UUID="a3693b88-7899-4628-848d-d9012205cf56" TYPE="ext4" 
/dev/mapper/docker-8:1-1589297-pool: UUID="a3693b88-7899-4628-848d-d9012205cf56" TYPE="ext4" 
$ 

On pourrait utiliser un peu de AWKmagie pour analyser la sortie de lsblkpour lister toutes les partitions non montées:

$ lsblk  --noheadings --raw | awk '$1~/s.*[[:digit:]]/ && $7==""'              
sdb1 8:17 0 1.5G 0 part 
sdb3 8:19 0 8.1G 0 part 
sdb4 8:20 0 1K 0 part 
sdb5 8:21 0 68.5G 0 part 
sdb6 8:22 0 5.8G 0 part

Ou bien:

$ lsblk --noheadings --raw -o NAME,MOUNTPOINT | awk '$1~/[[:digit:]]/ && $2 == ""'                                       
sdb1 
sdb2 
sdb3 
sdb4 
sdb5 

Ce qui se passe exactement là-bas, c'est que nous listons tous les

les lignes qui ont la première colonne commençant par une lettre s(car c'est ainsi que les lecteurs sont généralement nommés) et se terminant par un nombre (qui représentent les partitions). Dans ma sortie précédente, vous pouvez voir que j'ai d'autres systèmes de fichiers, comme pour docker, donc dans la commande ci-dessus, nous nous débarrassons de toutes les choses inutiles.

Montage des partitions

J'ai trouvé que cela mountpeut être difficile: il doit connaître le système de fichiers exact, il doit être exécuté en tant que root, etc. udisksctl mount -b /dev/sXYest une bien meilleure commande, peut être exécuté en tant qu'utilisateur normal et se monte automatiquement dans le /media/$USER/dossier. Par exemple,

$ udisksctl mount -b /dev/sdb5 
Mounted /dev/sdb5 at /media/xieerqi/0ca7543a-5463-4a07-8bbe-233a7b0bd625.

2

sudo blkid -o list

répertorie toutes les partitions montées et non montées. De plus, vous pouvez utiliser mountet dfpour voir tous les points de montage.

mount -t type device destination_dir

peut être utilisé pour monter votre appareil / partition.


Cela répertorie uniquement les partitions montées. Ceux non montés ne sont pas inclus.
Suncat2000

2

Pour répondre à votre première question, exécutez:

sudo parted -l

S'ils sont normalement montés, lancez simplement:

mount -a

Depuis la page de manuel de montage: La commande

mount -a [-t type] [-O optlist]

(généralement donné dans un script de démarrage) fait monter tous les systèmes de fichiers mentionnés dans fstab (du type approprié et / ou ayant ou non les options appropriées) comme indiqué, à l'exception de ceux dont la ligne contient le mot-clé noauto.

S'ils ne sont pas normalement montés, vous devez fournir les options de montage.


et pour être clair, la mountcommande doit également l'être sudo mount <options>, si elle est exécutée en tant que root, ou vous obtenez: mount: seul root peut le faire
JimLohse

Je suis trop nouveau pour commenter directement la réponse de @ Serg mais c'est assez exhaustif, au moins je peux le voter! N'oubliez pas de regarder sa réponse, en particulier la udisksctl mount -b /dev/sXYcommande qui peut être exécutée par un utilisateur moyen, très cool.
JimLohse

2

Voici ce que j'ai développé pour lister les volumes non montés:

lsblk  --noheadings --raw | awk '{print substr($0,0,4)}' | uniq -c | grep 1 | awk '{print "/dev/"$2}'

1
Pourriez-vous développer votre réponse avec des exemples sur la façon dont elle est utilisée?
WinEunuuchs2Unix

0

Vous pouvez aussi utiliser,

blkid -c /dev/nul | awk -F: '{print $1}'

pour obtenir la liste de toutes les partitions montées, puis utilisez Lsblkpour vérifier celles qui ne figuraient pas sur la liste montée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.