Liệt kê các nhãn phân vùng từ dòng lệnh


91

Có một lệnh sẽ liệt kê tất cả các phân vùng cùng với nhãn của họ? sudo fdisk -lsudo parted -lkhông hiển thị nhãn theo mặc định.

EDIT: (theo nhận xét bên dưới) Tôi đang nói về nhãn ext2 - những nhãn mà bạn có thể đặt gpartedkhi phân vùng.

EDIT2: Mục đích là liệt kê các phân vùng chưa được đếm (để tôi biết nên gắn cái nào).


1
Nhãn? Nhãn là gì? Bạn đang nói về nhãn ext2? Những người không có gì để làm với các bảng phân vùng mỗi se.
Chris Jester-Young

Xin chào @Chris Jester-Young, cảm ơn vì nhận xét của bạn! Tôi đã cố gắng làm rõ ở trên - vâng, tôi tin rằng đó là nhãn ext2 tôi đang nói về ... Chúc mừng!

4
Các phân vùng không có nhãn, nhưng hệ thống tệp thì có. Bạn cần một sự kết hợp của các công cụ để làm điều đó. Công blkidcụ này có thể cho bạn biết nhãn của một phân vùng đã biết. Nhưng để tìm phân vùng, bạn sẽ phải lặp qua đầu ra của fdisk.
Keith

2
@Keith, như một lưu ý phụ, tôi muốn thêm rằng các phân vùng GPT mới có trường tên tương tự như nhãn hệ thống tệp.
Cristian Ciupitu

Câu trả lời:


84

Với udev, bạn có thể sử dụng

ls -l /dev/disk/by-label

để hiển thị các liên kết tượng trưng theo nhãn cho ít nhất một số nút thiết bị phân vùng.

Không chắc logic của sự bao gồm là gì, có thể là sự tồn tại của nhãn.


2
Ít nhất là trên máy của tôi, thực sự chỉ có các hệ thống tập tin có nhãn được liên kết trong đó, như đã xác nhận (?) Bằng cách sử dụng mount -lđề xuất của Alan Kuras .

3
Xin chào @Ilkka - cảm ơn câu trả lời của bạn! Thật vậy, ls -la /dev/disk/by-labeldường như hiển thị nhãn của các phân vùng chưa từng có; Vì vậy, nó giải quyết vấn đề của tôi, tôi đoán ... Mặc dù, tôi thực sự sẽ thích một tùy chọn cho fdiskhoặc partedthay vào đó :) Chúc mừng!

2
Đối với tôi, phân vùng trao đổi và phân vùng gắn kết của tôi không được hiển thị, nhưng đó có thể chỉ là sự trùng hợp. Nhưng dù sao, sudo lsblk -o name,mountpoint,label,size,uuidlàm việc cho tôi.
Chiel ten Brinke

128

với lsblk

Ví dụ, lệnh

sudo lsblk -o name,mountpoint,label,size,uuid

đầu ra:

NAME                           MOUNTPOINT     LABEL         SIZE UUID
sda                                                         1.4T
├─sda1                         /boot          boot          953M f557b9f0-edb5-42bb-94d8-27bc03c3c2c7
├─sda2                                                     46.6G 727fa348-8804-4773-ae3d-f3e176d12dac
│ └─sda2_crypt (dm-0)                                      46.6G P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi
│   ├─debian_crypt-swap (dm-1) [SWAP]                         2G 3f9f24d7-86d1-4e21-93e9-f3c181d05cf0
│   ├─debian_crypt-tmp (dm-2)  /tmp           tmp             5G 93fc8219-f985-45fb-bd5c-2c7940a7512d
│   ├─debian_crypt-home (dm-3) /home          home            6G 12e8566c-8f0f-45ec-8524-6d9d9ee91eae
│   └─debian_crypt-root (dm-4) /              root         33.6G 9685570b-4c9e-43ea-815e-49d10dc7a1bf
├─sda3                                                    651.9G d3e0436c-85f6-45c6-9d8f-28b79ee06102
│ └─crypt_gusto (dm-8)         /media/Gusto   Gusto       651.9G 0c084508-cb8b-4b61-832d-6b85273f33c4
├─sda4                                                        1K
├─sda5                                                      298G 5063da5f-9b68-43de-914c-32b89622bcc8
│ └─crypt_kabi (dm-7)          /media/Kabi    Kabi          298G e6a0b66c-8fe9-4e7b-9d54-7b2b430e109d
├─sda6                                                    213.6G 5129d860-bb41-4393-b4b1-f8af53d9155d
│ └─crypt_zami (dm-6)          /media/Zami    Zami        213.6G 19101155-6070-4f37-b39d-19f28867c66b
├─sda7                         /media/Server  Server       85.6G a9f4dae5-901c-4f49-bb30-592de3000713
└─sda8                                                    100.6G dc7f4586-a33d-4707-98e9-8b55c559b0d2
  └─crypt_grafi (dm-5)         /media/Grafi   Grafi       100.6G 5e3242e1-ec7a-4806-92f7-88a126feea94
sdb                                                        14.5G
├─sdb1                                        DEBIAN_LIVE     3G 6bf4d915-2b62-444e-a2c8-16307769b5c2
├─sdb2                                                        2G 90ec6f73-8fdb-4c8d-aebd-cadd0f51b412
│ └─crypt_sdb2 (dm-10)         /mnt           data            2G 91e779dd-0a3f-40b2-8ad0-257d860541a6
└─sdb3                                        linux         9.5G 14a783a4-96dd-4a85-8de7-6e8eea230594
loop0                                                      1000M a3be80bf-0f2c-44ed-8de5-d60e3b19c01a
└─crypt_dropbox (dm-9)         /media/Dropbox Dropbox       998M 8461e2cf-ae17-449b-8ee5-29cc88688b8b
zram0                          [SWAP]                       250M f8254ae5-5ae6-4fda-b8ef-83f25c405894
zram1                          [SWAP]                       250M 7e7ed90d-731c-422a-bf9b-828f09b80502

Bạn có thể chỉ định nhiều cột theo bất kỳ thứ tự nào bạn muốn:

Available columns:
       NAME  device name
      KNAME  internal kernel device name
    MAJ:MIN  major:minor device number
     FSTYPE  filesystem type
 MOUNTPOINT  where the device is mounted
      LABEL  filesystem LABEL
       UUID  filesystem UUID
         RO  read-only device
         RM  removable device
      MODEL  device identifier
       SIZE  size of the device
      STATE  state of the device
      OWNER  user name
      GROUP  group name
       MODE  device node permissions
  ALIGNMENT  alignment offset
     MIN-IO  minimum I/O size
     OPT-IO  optimal I/O size
    PHY-SEC  physical sector size
    LOG-SEC  logical sector size
       ROTA  rotational device
      SCHED  I/O scheduler name
    RQ-SIZE  request queue size
       TYPE  device type
   DISC-ALN  discard alignment offset
  DISC-GRAN  discard granularity
   DISC-MAX  discard max bytes
  DISC-ZERO  discard zeroes data

4
Cảm ơn đã chỉ cho tôi công cụ này! Lưu ý, ứng dụng này hoạt động cho người dùng thông thường, nhưng sẽ chỉ hiển thị một số thông tin (bao gồm cả nhãn) dưới dạng root.
dùng689893

1
Nó cũng sẽ hiển thị các phân vùng chưa từng có? Nếu có thì nó giải quyết được câu hỏi.
Ravi

1
Đúng. Như bạn có thể thấy sdb1 và sdb3 không được gắn kết.
Mikhail Morfikov

14
hoặc dễ nhớ hơn lsblk -ftương đương vớilsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
LeoR

@ user689893 - không, điều đó chỉ xảy ra trên debian / ubfox và các dẫn xuất. Điểm quan trọng lsblklà được sử dụng bởi người dùng thông thường nên không cần su / sudo. Bây giờ, nếu điều đó không phù hợp với bạn, thì đó là vì nhà phát triển của bạn hoàn toàn bỏ lỡ điều gì đó.
don_crissti

26

Có một lệnh blkid có thể là những gì bạn đang tìm kiếm. Kết quả tương tự như sau:

$ sudo blkid /dev/mapper/vg_rootdisk-lv_var
/dev/mapper/vg_rootdisk-lv_var: LABEL="LV_VAR" UUID="08520908-03cd-4e42-a4e4-0f5a771be16c" TYPE="ext4"

Một lựa chọn khác là sử dụng lệnh udevadm , có khả năng sẽ cung cấp cho bạn nhiều hơn bạn cần:

$ sudo udevadm info --query=all --name=/dev/mapper/vg_rootdisk-lv_var

1
Đây là đề nghị chỉ cho đến nay mà làm việc trên ddwrt
Karthik T


9

Hãy thử sử dụng mount -l, nó hoạt động tốt cho tôi.


2
Xin chào @Alan Kuras - cảm ơn và +1 cho câu trả lời! Tuy nhiên, tôi muốn liệt kê các phân vùng chưa được đếm - mount -ldường như chỉ hiển thị các phân vùng được gắn kết .. Chúc mừng!

7

/ dev / đĩa

Trong các phiên bản mới hơn của nhân Linux, thông tin này có thể được tìm thấy ở đây bên dưới /dev/disk.

Thí dụ

$ ls -l /dev/disk
total 0
drwxr-xr-x 2 root root 300 Mar  4 18:43 by-id
drwxr-xr-x 2 root root 140 Mar  4 18:21 by-label
drwxr-xr-x 2 root root  80 Mar  4 18:18 by-path
drwxr-xr-x 2 root root 200 Mar  4  2015 by-uuid

Vì vậy, bạn có thể tìm thấy nó bằng by-id, by-label, by-pathhoặc bằng by-uuid.

  • by-id

    $ ls -l /dev/disk/by-id
    total 0
    lrwxrwxrwx. 1 root root  9 Jan 11 17:01 ata-Optiarc_DVD_RW_AD-7930H -> ../../sr0
    lrwxrwxrwx. 1 root root  9 Jan 11 17:01 ata-ST95005620AS_5YX1K0Q5 -> ../../sda
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 ata-ST95005620AS_5YX1K0Q5-part1 -> ../../sda1
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 ata-ST95005620AS_5YX1K0Q5-part2 -> ../../sda2
    ...
    ...
    
  • tạm biệt

    $ ls -l /dev/disk/by-uuid
    total 0
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 xxxxxx -> ../../sda1
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 xxxxxx -> ../../dm-1
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 xxxxxx -> ../../dm-0
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 xxxxxx -> ../../dm-2
    

    Trường hợp xxxxxxsẽ là một UUID thực tế, chẳng hạn như 5ece678c-1234-5678-12e3-88c06ec11111.

  • nhãn phụ

    $ ls -l /dev/disk/by-label/
    total 0
    lrwxrwxrwx 1 root root 10 Mar  4 18:21 LABEL1 -> ../../sda4
    lrwxrwxrwx 1 root root 10 Mar  4 18:17 LABEL2 -> ../../sda3
    lrwxrwxrwx 1 root root 10 Mar  4 18:21 LABEL3 -> ../../sda6
    lrwxrwxrwx 1 root root 10 Mar  4 18:42 LABEL4 -> ../../sda7
    lrwxrwxrwx 1 root root 10 Mar  4 18:20 LABEL5 -> ../../sda5
    

    Trong đó LABEL1, LABEL2... vv là nhãn hiển thị các liên kết tượng trưng đến phân vùng thực tế (ví dụ /dev/sda3).


Để sắp xếp theo tên phân vùng:ls -l /dev/disk/by-label/ | sort -k10
đào

4

Điều này sẽ không liệt kê tất cả các phân vùng nhưng bạn có thể xem và thay đổi những gì bạn thích với tune2fs.

$ sudo tune2fs -l /dev/sda1

Bạn có thể sử dụng một lệnh như thế này để có được tất cả các /dev/sda*thiết bị.

$ sudo sh -c 'echo /dev/sda* /dev/mapper/fedora* | xargs -n 1 tune2fs -l'

2

Bạn cũng có thể sử dụng lệnh này:

$ sudo udevadm info --query all --path /sys/block/sdb/sdb1 \
     | grep ID_PART_ENTRY_NAME

Bạn có thể sử dụng ở trên để in thông tin của tất cả các thiết bị khối.

$ echo /sys/block/* | xargs -n 1 udevadm info --query all --path

1

e2label không hoạt động với tôi với nhãn hệ thống tập tin UDF. blkid đã làm;

blkid -s LABEL -o value /dev/sdg1

1

Nếu bạn thích, bạn có thể sử dụng tập lệnh bash của tôi cho mục đích đó. Nó thực sự làm nhiều hơn một chút so với bạn cần, tức là nó cũng sẽ hiển thị bao nhiêu không gian được sử dụng. Hy vọng bạn thích nó :) Và tôi cũng hy vọng rằng đầu ra sẽ gọn gàng như trên hộp linux của tôi ... (Lưu ý: nó sẽ chỉ hiển thị phần cứng thực như ổ cứng và DVD-ROM của bạn, nhưng điều đó đủ cho mục đích của tôi.)

Lưu ý quan trọng: Tập lệnh này có thể phải được chạy theosudo ONCE vì blkid. Ít nhất là trên bản phân phối của tôi, blkid -o exportsẽ xuất ra con số không khi chạy như người dùng thông thường sau khi khởi động . Điều này là do trong "biểu hiện người dùng thông thường" của blkid, dữ liệu thực sự sẽ được truy xuất từ tệp bộ đệm (thông thường /run/blkid/blkid.tab), chỉ có thể ghi được rootvà do đó sẽ yêu cầu một lần chạy sudođể có được dữ liệu hiện tại.

#!/bin/bash
# LICENSE: GPL

if [[ $(id -u) -ne 0 ]]; then
  if [[ ! -s /run/blkid/blkid.tab ]]; then
   # no cache file found when run as regular user
   # this will require one run under sudo to populate cache file
   echo -e "Cache file does not exist or is empty.\nPlease give your root password to continue:\n\n"   
   sudo blkid >/dev/null
  fi
fi

df -P |
sort  |
awk 'BEGIN {
             fmthdr = "%-12s%-22s%-10s\t%-5s\n"

         # since we want to use single quotes for showing label names, we had better
         # replace the problematic single quote character by its hex representation, "\x27"
             fmtlin_w_qu = "%-12s\x27%-17s\x27\t   %-10s\t%4s used\n"
             fmtlin_wo_qu = "%-12s%-17s\t   %-10s\t%4s used\n"

             printf fmthdr, " Device ",  "Volume Label", "File System", "Storage usage"
             printf fmthdr, "---------", "------------", "-----------", "-------------"
           }    
           /^\/dev\/[sh]/{
              lab = ""      # CLEAR lab w/every run (very important!)
              ("blkid -o export "$1" | grep LABEL | cut -f2 -d=") | getline lab
              ("blkid -o export "$1" | grep TYPE | cut -f2 -d=") | getline fs
              if (lab == "") {
                lab = "<none>"
                fmtlin = fmtlin_wo_qu
              }
              else
                fmtlin = fmtlin_w_qu

              printf fmtlin, $1, lab, fs, $5
           }'

1

Trong một thiết bị đầu cuối Linux (bàn điều khiển) loại:

blkid

Theo dõi bởi Enter

Kết quả là danh sách các thiết bị khối, mỗi thiết bị có LABEL và TYPE


0

Tôi sử dụng cũng lsblkđược đề cập ở trên, nhưng tôi thấy các tùy chọn sau phù hợp hơn:

sudo lsblk -o name,mountpoint,tran,fstype,label,size
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.