Câu trả lời:
Liệt kê phân vùng không đếm được
Để giải quyết việc niêm yết của các phân vùng phần chưa lắp ráp, có một số cách - 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"
$
Người ta có thể sử dụng một chút AWK
phép thuật để phân tích đầu ra lsblk
để liệt kê tất cả các phân vùng chưa được đếm:
$ 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
Hay cách khác:
$ lsblk --noheadings --raw -o NAME,MOUNTPOINT | awk '$1~/[[:digit:]]/ && $2 == ""'
sdb1
sdb2
sdb3
sdb4
sdb5
Chính xác những gì đang xảy ra là chúng tôi liệt kê tất cả
dòng có cột đầu tiên bắt đầu bằng chữ cái s
(vì đó là cách các ổ thường được đặt tên) và kết thúc bằng một số (đại diện cho các phân vùng). Trong đầu ra trước đây của tôi, bạn có thể thấy rằng tôi có các hệ thống tập tin khác, chẳng hạn như cho docker, vì vậy trong lệnh trên, chúng tôi sẽ loại bỏ tất cả những thứ không cần thiết.
Phân vùng gắn kết
Tôi thấy rằng mount
có thể kén chọn, nó cần biết chính xác hệ thống tập tin, nó cần được chạy dưới quyền root, v.v. udisksctl mount -b /dev/sXY
là một lệnh tốt hơn nhiều, có thể được chạy như người dùng thông thường và tự động gắn vào /media/$USER/
thư mục. Ví dụ,
$ udisksctl mount -b /dev/sdb5
Mounted /dev/sdb5 at /media/xieerqi/0ca7543a-5463-4a07-8bbe-233a7b0bd625.
sudo blkid -o list
sẽ liệt kê tất cả các phân vùng được gắn và không đếm được. Ngoài ra, bạn có thể sử dụng mount
và df
để xem tất cả các điểm gắn kết.
mount -t type device destination_dir
có thể được sử dụng để gắn thiết bị / phân vùng của bạn.
Để trả lời câu hỏi đầu tiên của bạn, hãy chạy:
sudo parted -l
Nếu chúng được gắn bình thường, chỉ cần chạy:
mount -a
Từ trang mount man: Lệnh
gắn kết -a [-t loại] [-O optlist]
(thường được đưa ra trong một bootcript) làm cho tất cả các hệ thống tập tin được đề cập trong fstab (thuộc loại thích hợp và / hoặc có hoặc không có các tùy chọn phù hợp) được gắn kết như đã chỉ ra, ngoại trừ những hệ thống có dòng từ khóa noauto.
Nếu chúng không được gắn kết bình thường, bạn phải cung cấp các tùy chọn để gắn kết.
mount
lệnh cũng cần phải được thực hiện sudo mount <options>
, nếu chạy như khác với root hoặc bạn nhận được: mount: chỉ root mới có thể làm điều đó
udisksctl mount -b /dev/sXY
lệnh có thể được chạy bởi một người dùng trung bình, rất tuyệt.
Đây là những gì tôi đã phát triển để liệt kê khối lượng chưa từng có:
lsblk --noheadings --raw | awk '{print substr($0,0,4)}' | uniq -c | grep 1 | awk '{print "/dev/"$2}'
Bạn cũng có thể dùng,
blkid -c /dev/nul | awk -F: '{print $1}'
để lấy danh sách của tất cả các phân vùng được gắn kết, và sau đó sử dụng Lsblk
để kiểm tra những gì không có trong danh sách được gắn kết.