Daftar label partisi dari baris perintah

91

Apakah ada perintah yang akan mencantumkan semua partisi beserta labelnya? sudo fdisk -ldan sudo parted -ljangan tampilkan label secara default.

EDIT: (sesuai komentar di bawah) Saya berbicara tentang label ext2 - label yang dapat Anda setel gpartedsaat mempartisi.

EDIT2: Maksudnya adalah daftar partisi yang belum di- mount (jadi saya tahu yang mana yang akan di-mount).

sdaau
sumber
1
Label? Apa itu label? Apakah Anda berbicara tentang label ext2? Itu tidak ada hubungannya dengan tabel partisi per se.
Chris Jester-Young
Hai @ Chris Jester-Young, terima kasih atas komentar Anda! Saya telah mencoba mengklarifikasi di atas - ya, saya percaya ini adalah label ext2 yang saya bicarakan ... Ceria!
4
Partisi tidak memiliki label, tetapi sistem file punya. Anda memerlukan kombinasi alat untuk melakukannya. The blkidalat dapat memberitahu Anda label dari partisi yang dikenal. Tetapi untuk menemukan partisi Anda harus mengulang keluaran fdisk.
Keith
2
@Keith, sebagai catatan, saya ingin menambahkan bahwa partisi GPT baru memiliki bidang nama yang mirip dengan label sistem file.
Cristian Ciupitu

Jawaban:

84

Dengan udev, Anda bisa menggunakan

ls -l /dev/disk/by-label

untuk menunjukkan symlink oleh label ke setidaknya beberapa node perangkat partisi.

Tidak yakin apa logika inklusi, mungkin keberadaan label.

Ilkka
sumber
2
Setidaknya di komputer saya, memang hanya sistem file dengan label yang terhubung di sana, seperti yang dikonfirmasi (?) Dengan menggunakan mount -lsaran Alan Kuras .
3
Hai @ Ikka - terima kasih atas jawaban Anda! Memang, ls -la /dev/disk/by-labeltampaknya menunjukkan label partisi yang tidak di-mount; jadi itu menyelesaikan masalah saya, saya kira ... Meskipun, saya benar-benar lebih suka pilihan untuk fdiskatau partedsebagai gantinya :) Ceria!
2
Bagi saya, partisi swap dan partisi yang dipasang tidak ditampilkan, tetapi itu mungkin saja kebetulan. Bagaimanapun, sudo lsblk -o name,mountpoint,label,size,uuidbekerja untuk saya.
Chiel ten Brinke
128

dengan lsblk

Misalnya, perintahnya

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

output:

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

Anda dapat menentukan banyak kolom dalam urutan apa pun yang Anda suka:

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
Mikhail Morfikov
sumber
4
Terima kasih telah menunjukkan saya alat ini! Catatan, aplikasi ini berfungsi untuk pengguna biasa, tetapi hanya akan menampilkan beberapa info (termasuk label) sebagai root.
user689893
1
Apakah ini akan menampilkan partisi yang belum di-mount juga? Jika ya maka itu memecahkan pertanyaan yang diajukan.
Ravi
1
Iya. Seperti yang Anda lihat sdb1 dan sdb3 tidak di-mount.
Mikhail Morfikov
14
atau lebih mudah diingat lsblk -fyang setara denganlsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
LeoR
@ user689893 - tidak, itu hanya terjadi pada debian / ubuntu dan turunannya. Intinya lsblkadalah untuk digunakan oleh pengguna biasa sehingga tidak perlu su / sudo. Sekarang, jika itu tidak berhasil untuk Anda, itu karena pengembang distro Anda kehilangan sesuatu.
don_crissti
26

Ada perintah blkid yang mungkin Anda cari. Hasilnya mirip dengan yang berikut:

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

Satu opsi lain adalah menggunakan perintah udevadm , yang kemungkinan akan memberi Anda jauh lebih banyak daripada yang Anda butuhkan:

$ sudo udevadm info --query=all --name=/dev/mapper/vg_rootdisk-lv_var
slashdot
sumber
1
Ini adalah satu-satunya saran sejauh ini yang bekerja pada ddwrt
Karthik T
12

Coba gunakan perintah ini:

e2label /dev/sda2
Dmitriy Kosolobov
sumber
9

Coba gunakan mount -l, itu baik untuk saya.

slm
sumber
2
Hai @Alan Kuras - terima kasih dan +1 atas jawabannya! Namun, saya ingin daftar partisi yang belum di-mount - mount -lsepertinya hanya menampilkan partisi yang terpasang .. Ceria!
7

/ dev / disk

Dalam versi yang lebih baru dari kernel Linux info ini sekarang dapat ditemukan di sini di bawah /dev/disk.

Contoh

$ 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

Sehingga Anda dapat menemukannya dengan by-id, by-label, by-pathatau by-uuid.

  • oleh-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
    ...
    ...
    
  • by-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
    

    Di mana xxxxxxakan menjadi UUID aktual seperti 5ece678c-1234-5678-12e3-88c06ec11111.

  • oleh 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
    

    Di mana LABEL1,, LABEL2... dll adalah label yang menunjukkan tautan simbolis ke partisi aktual (mis /dev/sda3.).

slm
sumber
Untuk mengurutkan berdasarkan nama partisi:ls -l /dev/disk/by-label/ | sort -k10
Digger
4

Ini tidak akan mencantumkan semua partisi tetapi Anda dapat melihat dan mengubah apa yang Anda suka tune2fs.

$ sudo tune2fs -l /dev/sda1

Anda dapat menggunakan perintah seperti ini untuk mendapatkan semua /dev/sda*perangkat.

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

Anda juga dapat menggunakan perintah ini:

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

Anda dapat menggunakan hal di atas untuk mencetak semua info perangkat blok.

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

e2label tidak bekerja untuk saya dengan label sistem file UDF. blkid melakukannya;

blkid -s LABEL -o value /dev/sdg1
Thermionix
sumber
1

Jika suka, Anda dapat menggunakan skrip bash saya untuk tujuan itu. Ini sebenarnya sedikit lebih banyak dari yang Anda butuhkan, yaitu juga akan menunjukkan berapa banyak ruang yang digunakan. Semoga Anda menyukainya :) Dan saya juga berharap bahwa outputnya akan serapi pada kotak linux saya ... (Catatan: ini hanya akan menampilkan perangkat keras nyata seperti HDD dan DVD-ROM Anda, tetapi itu sudah cukup untuk keperluan saya.)

Catatan penting: Skrip ini mungkin harus dijalankan di bawahsudo SEKALI karena blkid. Setidaknya pada distro saya, blkid -o exportakan menampilkan nihil ketika dijalankan sebagai pengguna biasa setelah bootup . Ini karena dalam "rendisi pengguna reguler" blkid, data sebenarnya akan diambil dari file cache (biasanya /run/blkid/blkid.tab), yang hanya dapat ditulisi oleh rootdan karenanya akan membutuhkan satu run sudodi bawah untuk dapat diisi dengan data saat ini.

#!/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
           }'
kesalahan sintaks
sumber
1

Di terminal Linux (konsol) ketik:

blkid

Diikuti oleh Enter

Hasilnya adalah daftar perangkat blok, masing-masing dengan LABEL dan TYPE

JLJ
sumber
0

Saya menggunakan juga yang lsblkdisebutkan di atas, tetapi saya menemukan opsi setelan berikut lebih baik:

sudo lsblk -o name,mountpoint,tran,fstype,label,size
Eduard Florinescu
sumber