Bölüm etiketlerini komut satırından listeleme


91

Tüm bölümleri etiketleriyle birlikte listeleyecek bir komut var mı? sudo fdisk -lve sudo parted -letiketleri varsayılan olarak gösterme.

EDIT: (aşağıdaki yoruma göre) ext2 etiketlerinden - gpartedbölümleme sırasında ayarlayabileceğinizlerden söz ediyorum .

EDIT2: Amaç, takılmamış bölümleri listelemektir (bu yüzden hangisinin monte edileceğini biliyorum).


1
Etiketler? Etiket nedir? Ext2 etiketlerinden mi bahsediyorsunuz? Bunların bölüm tabloları ile ilgisi yoktur.
Chris Jester-Young

Merhaba @Chris Jester-Young, yorumunuz için teşekkürler! Yukarıda açıklığa kavuşturmaya çalıştım - evet, bahsettiğim ext2 etiketleri olduğuna inanıyorum ... Şerefe!

4
Bölümlerde etiket yok, ancak dosya sistemleri var. Bunu yapmak için bir araç kombinasyonuna ihtiyacınız var. blkidAraç, bilinen bir bölümünün etiketini söyleyebilir. Ancak bölümü bulmak için fdisk'in çıktısını kullanmanız gerekir.
Keith

2
@Keith, bir not olarak, yeni GPT bölümlerinin dosya sistemi etiketlerine benzer bir ad alanına sahip olduğunu eklemek isterim .
Cristian Ciupitu

Yanıtlar:


84

Udev ile kullanabilirsiniz

ls -l /dev/disk/by-label

sembolik linkleri en azından bazı bölümleme cihaz düğümlerine etiket ile göstermek .

Dahil etme mantığının ne olduğundan emin değil, muhtemelen bir etiketin varlığı.


2
En azından makinemde, Alan Kuras'ın mount -lönerisini kullanarak onaylandığı şekilde (?) Etiketlenmiş dosya sistemlerinden ibaret .

3
Merhaba @lkka - Cevabınız için teşekkürler! Aslında, ls -la /dev/disk/by-labeltakılmamış bölüm etiketlerini gösteriyor; Böylece sorunumu çözerim, sanırım ... Her ne kadar gerçekten bir seçeneği tercih ederdim fdiskya da partedbunun yerine :) Şerefe!

2
Benim için takas bölümüm ve takılı bölümler gösterilmiyor, ancak bu sadece bir tesadüf olabilir. Her neyse, sudo lsblk -o name,mountpoint,label,size,uuidbenim için çalıştı.
Chiel ten Brinke

128

ile lsblk

Örneğin, komut

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

çıktılar:

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

İstediğiniz sırada istediğiniz miktarda sütun belirleyebilirsiniz:

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
Bana bu aracı gösterdiğin için teşekkürler! Not, bu uygulama normal kullanıcılar için çalışır, ancak bazı bilgileri (etiketler dahil) sadece root olarak gösterir.
user689893

1
Ayrılmamış bölümleri de gösterecek mi? Eğer evet ise, sorulan soruyu çözer.
Ravi

1
Evet. Gördüğünüz gibi sdb1 ve sdb3 takılı değil.
Mikhail Morfikov

14
veya daha kolay hatırlamak lsblk -fiçin eşdeğeri olanlsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
LeoR

@ user689893 - hayır, bu sadece debian / ubuntu ve türevlerinde olur. Amaç lsblknormal kullanıcılar tarafından kullanılmadığı için su / sudo kullanmanıza gerek yok. Şimdi, eğer bu sizin için işe yaramazsa, bunun nedeni dağıtımcınızın bir şeyleri kaçırdığıdır.
don_crissti

26

Aradığın şey olabilecek bir blkid komutu var. Sonuçlar aşağıdakine benzer:

$ 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"

Diğer bir seçenek de, udevadm komutunu kullanmaktır , ki bu muhtemelen size gerekenden çok daha fazlasını verecektir:

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

1
Bu, şu ana kadar ddwrt üzerinde çalışan tek öneriydi
Karthik T


9

Kullanmaya mount -lçalış, bu benim için iyi.


2
Merhaba @Alan Kuras - Cevabınız için teşekkürler ve +1! Ancak, takılmamış bölümleri listelemek istiyorum - mount -lsadece monte edilmiş olanları gösteriyor gibi görünüyor .. Şerefe!

7

/ Dev / Disk

Linux çekirdeğinin daha yeni sürümlerinde bu bilgiyi şimdi burada bulabilirsiniz /dev/disk.

Örnek

$ 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

Yani bunu bulabilirsiniz by-id, by-label, by-pathveya tarafından 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
    ...
    ...
    
  • yan uuid

    $ 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
    

    Bunun xxxxxxgibi gerçek bir UUID olduğu yerde 5ece678c-1234-5678-12e3-88c06ec11111.

  • by-label

    $ 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
    

    Burada LABEL1,, LABEL2... etc asıl bölüme sembolik bağlar gösteren bir etikettir (örn. /dev/sda3).


Bölüm adına göre sıralamak için:ls -l /dev/disk/by-label/ | sort -k10
Digger

4

Bu, tüm bölümleri listelemez, ancak neyi sevdiğinizi görüntüleyebilir ve değiştirebilirsiniz tune2fs.

$ sudo tune2fs -l /dev/sda1

Tüm /dev/sda*aygıtları almak için böyle bir komut kullanabilirsiniz .

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

2

Bu komutu da kullanabilirsiniz:

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

Tüm blok cihazlarının bilgilerini yazdırmak için yukarıdakileri kullanabilirsiniz.

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

1

e2label benim için UDF dosya sistemi etiketleriyle çalışmadı. blkid yaptı;

blkid -s LABEL -o value /dev/sdg1

1

İsterseniz bash betiğimi bu amaç için kullanabilirsiniz. Gerçekte ihtiyacınız olandan biraz daha fazlasını yapar, yani ne kadar alan kullanıldığını da gösterir. Umarım beğenirsiniz :) Ayrıca çıktının linux kutumdaki kadar temiz olacağını umuyorum ... (Not: yalnızca HDD'ler ve DVD-ROM'lar gibi gerçek donanımlar gösterecektir , ancak bu benim amaçlarım için yeterlidir.)

Önemli not: Bu komut dosyasısudo nedeniyle ONCE altında çalıştırılması gerekebilirblkid . En azından benim dağıtımımda, açılıştan sonra normal kullanıcı olarak çalıştırıldığında nilblkid -o export çıkacak . Bunun nedeni, "normal kullanıcı yorumlamasında" , verilerin aslında bir önbellek dosyasından (normalde ) yazılabilmesidir; bu, yalnızca yazılabilir olan ve bu nedenle mevcut verilerle doldurulmak için altında bir çalışmayı gerektirecektir .blkid/run/blkid/blkid.tabrootsudo

#!/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

Bir Linux terminalinde (konsol) şunu yazın:

blkid

Bunu takiben Enter

Sonuç, her biri LABEL ve TYPE olan blok cihazların listesidir.


0

lsblkYukarıda belirtilenleri de kullanıyorum , ancak aşağıdaki seçenekleri daha uygun buluyorum:

sudo lsblk -o name,mountpoint,tran,fstype,label,size
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.