Jak wyświetlić listę odmontowanych partycji dysku twardego i zamontować je?


Odpowiedzi:


43

Wyświetlanie niezamontowanych partycji

Aby rozwiązać ten listing nieoprawione przegród części, istnieje kilka sposobów - 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" 
$ 

Przydałoby się trochę AWKmagii, aby przeanalizować dane wyjściowe i wyświetlić lsblklistę wszystkich odmontowanych partycji:

$ 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

Lub alternatywnie:

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

To, co się dokładnie dzieje, polega na tym, że wymieniamy wszystkie

wiersze, które mają pierwszą kolumnę zaczynającą się na literę s(bo tak zwykle nazywane są dyski) i kończącą się liczbą (reprezentującą partycje). Na moim poprzednim wyjściu widać, że mam inne systemy plików, takie jak doker, więc w powyższym poleceniu pozbywamy się wszystkich niepotrzebnych rzeczy.

Montowanie partycji

Odkryłem, że mountmoże być wybredny : musi znać dokładny system plików, musi być uruchamiany jako root, itp. udisksctl mount -b /dev/sXYJest znacznie lepszym poleceniem, może być uruchamiany jako zwykły użytkownik i automatycznie instaluje się w /media/$USER/folderze. Na przykład,

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

2

sudo blkid -o list

wyświetli listę wszystkich zamontowanych i odmontowanych partycji. Ponadto możesz użyć mounti, dfaby zobaczyć wszystkie punkty montażu.

mount -t type device destination_dir

można użyć do zamontowania urządzenia / partycji.


Lista zawiera tylko zamontowane partycje. Odmontowane nie są uwzględnione.
Suncat2000

2

Aby odpowiedzieć na pierwsze pytanie, uruchom:

sudo parted -l

Jeśli są normalnie zamontowane, po prostu uruchom:

mount -a

Ze strony podręcznika montowania: polecenie

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

(zwykle podane w skrypcie rozruchowym) powoduje, że wszystkie systemy plików wymienione w fstab (odpowiedniego typu i / lub posiadające lub nie posiadające odpowiednich opcji) są montowane zgodnie ze wskazaniami, z wyjątkiem tych, których wiersz zawiera słowo kluczowe noauto.

Jeśli nie są normalnie montowane, musisz podać opcje montażu.


i żeby było jasne, mountkomenda musi być sudo mount <options>również wykonana, jeśli uruchomisz ją inaczej niż root, lub otrzymasz: mount: tylko root może to zrobić
JimLohse

Jestem zbyt nowy, aby komentować bezpośrednio odpowiedź @ Serg, ale jest ona dość wyczerpująca, przynajmniej mogę ją głosować! Pamiętaj, aby spojrzeć na jego odpowiedź, szczególnie udisksctl mount -b /dev/sXYpolecenie, które może być uruchomione przez przeciętnego użytkownika, bardzo fajnie.
JimLohse

2

Oto, co opracowałem, aby wyświetlić listę niezmontowanych woluminów:

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

1
Czy możesz rozszerzyć swoją odpowiedź o przykłady wykorzystania?
WinEunuuchs2Unix

0

Możesz także użyć,

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

aby uzyskać listę wszystkich zamontowanych partycji, a następnie użyj, Lsblkaby sprawdzić, które nie były na zamontowanej liście.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.