Как вывести список несмонтированных разделов жесткого диска и смонтировать их?


Ответы:


43

Вывод списка несмонтированных разделов

Для решения листинга отмонтированных разделов части, есть несколько способов - 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" 
$ 

Можно использовать немного AWKмагии, чтобы проанализировать вывод, lsblkчтобы вывести список всех размонтированных разделов:

$ 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

Или в качестве альтернативы:

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

Что именно там происходит, так это то, что мы перечисляем все

строки, в которых первый столбец начинается с буквы s(потому что так обычно называются диски) и заканчивается числом (которые представляют разделы). В моем предыдущем выводе вы могли видеть, что у меня есть другие файловые системы, например, для docker, поэтому в приведенной выше команде мы избавляемся от всех ненужных вещей.

Монтажные перегородки

Я обнаружил, что это mountможет быть требовательно: ему нужно знать точную файловую систему, его нужно запускать от имени пользователя root и т. Д. udisksctl mount -b /dev/sXYЭто гораздо лучшая команда, ее можно запускать как обычный пользователь и автоматически монтировать в /media/$USER/папку. Например,

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

2

sudo blkid -o list

перечислит все смонтированные и не смонтированные разделы. Кроме того, вы можете использовать mountи, dfчтобы увидеть все точки монтирования.

mount -t type device destination_dir

может быть использован для монтирования вашего устройства / раздела.


Это список только смонтированных разделов. Размонтированные не включены.
Suncat2000

2

Чтобы ответить на ваш первый вопрос, запустите:

sudo parted -l

Если они нормально смонтированы, просто запустите:

mount -a

Со страницы руководства пользователя mount: Команда

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

(обычно приводится в загрузочном скрипте) вызывает монтирование всех файловых систем, упомянутых в fstab (правильного типа и / или имеющих или не имеющих надлежащих параметров), как указано, за исключением тех, чья строка содержит ключевое слово noauto.

Если они обычно не смонтированы, вы должны указать опции для монтирования.


и чтобы быть понятным, mountкоманда должна быть sudo mount <options>такой же, если она запускается не как root, или вы получаете: mount: это может сделать только root
JimLohse

Я слишком новичок, чтобы прямо комментировать ответ @ Serg, но он довольно исчерпывающий, по крайней мере, я могу его высказать! Обязательно посмотрите на его ответ, особенно на udisksctl mount -b /dev/sXYкоманду, которую может запустить обычный пользователь, очень круто.
JimLohse

2

Вот что я разработал для перечисления несмонтированных томов:

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

1
Не могли бы вы расширить свой ответ примерами того, как он используется?
WinEunuuchs2Unix

0

Вы также можете использовать,

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

чтобы получить список всех смонтированных разделов, а затем использовать Lsblkдля проверки того, чего не было в смонтированном списке.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.