¿Cómo enumerar la partición desmontada de un disco duro y montarla?

Respuestas:

43

Listado de particiones desmontadas

Para hacer frente a la lista de la parte particiones sin montar, hay varias maneras - 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" 
$ 

Se podría usar un poco de AWKmagia para analizar la salida de la lsblklista de todas las particiones desmontadas:

$ 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

O alternativamente:

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

Lo que está sucediendo exactamente allí es que estamos enumerando todos los

líneas que tienen una primera columna que comienza con una letra s(porque así es como se suelen llamar las unidades) y termina con un número (que representa particiones). En mi salida anterior, podría ver que tengo otros sistemas de archivos, como docker, por lo que en el comando anterior nos estamos deshaciendo de todas las cosas innecesarias.

Particiones de montaje

Descubrí que mountpuede ser exigente: necesita saber el sistema de archivos exacto, debe ejecutarse como root, etc. udisksctl mount -b /dev/sXYes un comando mucho mejor, puede ejecutarse como usuario normal y se monta automáticamente en la /media/$USER/carpeta. Por ejemplo,

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

sudo blkid -o list

enumerará todas las particiones montadas y desmontadas. Además, puede usar mounty dfpara ver todos los puntos de montaje.

mount -t type device destination_dir

se puede usar para montar su dispositivo / partición.

Ron
fuente
Esto enumera solo particiones montadas. Los desmontados no están incluidos.
Suncat2000
2

Para responder a su primera pregunta, ejecute:

sudo parted -l

Si normalmente están montados, simplemente ejecute:

mount -a

Desde la página de manual de mount: el comando

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

(generalmente se proporciona en un arranque) hace que todos los sistemas de archivos mencionados en fstab (del tipo apropiado y / o que tengan o no las opciones adecuadas) se monten como se indica, excepto aquellos cuya línea contiene la palabra clave noauto.

Si normalmente no están montados, debe proporcionar las opciones de montaje.

JimLohse
fuente
y para que quede claro, el mountcomando también debe serlo sudo mount <options>, si se ejecuta como otro que no sea root, o se obtiene: mount: solo root puede hacer eso
JimLohse
Soy demasiado nuevo para comentar directamente sobre la respuesta de @ Serg, pero es bastante exhaustivo, ¡al menos puedo votarlo! Asegúrese de mirar su respuesta, especialmente el udisksctl mount -b /dev/sXYcomando que puede ejecutar un usuario promedio, muy bueno.
JimLohse
2

Esto es lo que desarrollé para enumerar volúmenes desmontados:

lsblk  --noheadings --raw | awk '{print substr($0,0,4)}' | uniq -c | grep 1 | awk '{print "/dev/"$2}'
Dólar
fuente
1
¿Podría ampliar su respuesta con ejemplos sobre cómo se usa?
WinEunuuchs2Unix
0

También puedes usar,

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

para obtener la lista de todas las particiones montadas, y luego usar Lsblkpara verificar cuáles no estaban en la lista montada.

Sufiyan Ghori
fuente