แสดงรายการป้ายพาร์ติชันจากบรรทัดคำสั่ง


91

มีคำสั่งที่จะแสดงรายการพาร์ติชั่นทั้งหมดพร้อมกับเลเบลของพวกเขาหรือไม่? sudo fdisk -lและsudo parted -lไม่แสดงป้ายกำกับตามค่าเริ่มต้น

แก้ไข: (ตามความคิดเห็นด้านล่าง) ฉันกำลังพูดถึงป้ายกำกับ ext2 - สิ่งที่คุณสามารถตั้งค่าgpartedเมื่อแบ่งพาร์ติชัน

EDIT2: ความตั้งใจคือการแสดงรายการพาร์ติชันที่ไม่ได้ต่อเชื่อม


1
ป้าย? ป้ายกำกับคืออะไร คุณกำลังพูดถึงฉลาก ext2? สิ่งเหล่านั้นไม่มีส่วนเกี่ยวข้องกับตารางพาร์ติชั่น
Chris Jester-Young

สวัสดี @Chris Jester-Young ขอบคุณสำหรับความคิดเห็นของคุณ! ฉันพยายามอธิบายให้ชัดเจน - ใช่ฉันเชื่อว่ามันเป็น ext2 ป้ายกำกับที่ฉันพูดถึง ... ไชโย!

4
พาร์ติชันไม่มีป้ายชื่อ แต่ระบบไฟล์มี คุณต้องใช้เครื่องมือหลายอย่างประกอบกัน blkidเครื่องมือที่สามารถบอกคุณได้ป้ายชื่อของพาร์ทิชันที่รู้จักกัน แต่ถ้าจะหาพาร์ติชั่นคุณจะต้องวนลูปเอาท์พุทของ fdisk
Keith

2
@ Keith ในฐานะที่เป็นบันทึกย่อฉันต้องการเพิ่มว่าพาร์ติชัน GPTใหม่มีฟิลด์ชื่อซึ่งคล้ายกับป้ายกำกับระบบไฟล์
Cristian Ciupitu

คำตอบ:


84

ด้วย udev คุณสามารถใช้

ls -l /dev/disk/by-label

เพื่อแสดง symlink ตามเลเบลอย่างน้อยบางโหนดอุปกรณ์พาร์ติชัน

ไม่แน่ใจว่าเหตุผลของการรวมคืออาจมีอยู่ของฉลาก


2
อย่างน้อยในเครื่องของฉันมันเป็นเพียงระบบไฟล์ที่มีป้ายกำกับที่เชื่อมโยงในนั้นตามที่ได้รับการยืนยัน (?) โดยใช้mount -lคำแนะนำของ Alan Kuras

3
สวัสดี @Ilkka - ขอบคุณสำหรับคำตอบของคุณ! อันที่จริงls -la /dev/disk/by-labelดูเหมือนจะแสดงฉลากของพาร์ทิชันเดินเท้า; ดังนั้นที่แก้ปัญหาของฉันฉันเดา ... แม้ว่าฉันจะต้องการตัวเลือกสำหรับfdiskหรือpartedแทน :) ไชโย!

2
สำหรับฉันแล้ว swap พาร์ติชันและพาร์ติชันที่ติดตั้งของฉันไม่แสดง แต่นั่นอาจเป็นเรื่องบังเอิญ อย่างไรก็ตามsudo lsblk -o name,mountpoint,label,size,uuidทำงานให้ฉัน
Chiel ten Brinke

128

กับ lsblk

ตัวอย่างเช่นคำสั่ง

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

เอาท์พุท:

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

คุณสามารถระบุคอลัมน์จำนวนมากตามลำดับที่คุณต้องการ:

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
ขอบคุณที่แสดงเครื่องมือนี้ให้ฉัน! หมายเหตุแอปพลิเคชันนี้ใช้งานได้สำหรับผู้ใช้ทั่วไป แต่จะแสดงข้อมูลบางอย่าง (รวมถึงป้ายกำกับ) เป็นเพียงราก
user689893

1
มันจะแสดงพาร์ติชั่นที่ไม่ได้ประกอบเข้าไปด้วยหรือไม่? ถ้าใช่ก็จะแก้คำถามที่ถาม
Ravi

1
ใช่. อย่างที่คุณเห็นว่า sdb1 และ sdb3 ไม่ได้ถูกเมานท์
Mikhail Morfikov

14
หรือจำง่ายกว่าlsblk -fซึ่งเทียบเท่ากับlsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
LeoR

@ user689893 - ไม่เกิดขึ้นกับเดเบียน / อูบุนตูและอนุพันธ์ จุดประสงค์lsblkที่จะใช้โดยผู้ใช้ทั่วไปจึงไม่จำเป็นต้อง su / sudo ทีนี้ถ้ามันไม่ได้ผลสำหรับคุณนั่นเป็นเพราะ distro devs ของคุณพลาดอะไรบางอย่างไป
don_crissti

26

มีคำสั่งblkidซึ่งอาจเป็นสิ่งที่คุณกำลังมองหา ผลลัพธ์คล้ายกันดังต่อไปนี้:

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

อีกทางเลือกหนึ่งคือการใช้คำสั่งudevadmซึ่งมีแนวโน้มว่าจะให้คุณมากกว่าที่คุณต้องการ:

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

1
นี่เป็นข้อเสนอแนะเพียงอย่างเดียวที่ใช้กับ ddwrt
Karthik T


9

ลองใช้ดูmount -lแล้วมันใช้งานได้ดีสำหรับฉัน


2
สวัสดี @Alan Kuras - ขอบคุณและ +1 สำหรับคำตอบ! อย่างไรก็ตามฉันต้องการแสดงรายการพาร์ติชั่นที่ไม่ได้ต่อพ่วง - mount -lดูเหมือนว่าจะแสดงเฉพาะพาร์ติชั่นเท่านั้น .. ไชโย!

7

/ dev / ดิสก์

/dev/diskในรุ่นใหม่ของเคอร์เนลข้อมูลนี้ในขณะนี้คุณสามารถพบได้ที่นี่ภายใต้

ตัวอย่าง

$ 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

เพื่อให้คุณสามารถค้นหาได้โดยby-id, by-label, หรือโดยการby-pathby-uuid

  • โดย-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
    ...
    ...
    
  • โดย 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
    

    ในกรณีที่xxxxxxจะเป็น UUID 5ece678c-1234-5678-12e3-88c06ec11111ที่เกิดขึ้นจริงเช่น

  • โดยฉลาก

    $ 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
    

    ที่ไหนLABEL1, LABEL2... ฯลฯ มีฉลากซึ่งแสดงให้เห็นการเชื่อมโยงสัญลักษณ์พาร์ทิชันที่เกิดขึ้นจริง (เช่น/dev/sda3)


ในการจัดเรียงตามชื่อพาร์ติชัน:ls -l /dev/disk/by-label/ | sort -k10
Digger

4

นี่จะไม่แสดงรายการพาร์ติชั่นทั้งหมด แต่คุณสามารถดูและแก้ไขสิ่งที่คุณต้องการtune2fsได้

$ sudo tune2fs -l /dev/sda1

คุณสามารถใช้คำสั่งเช่นนี้เพื่อรับ/dev/sda*อุปกรณ์ทั้งหมด

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

2

คุณยังสามารถใช้คำสั่งนี้:

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

คุณสามารถใช้ข้อมูลด้านบนเพื่อพิมพ์ข้อมูลอุปกรณ์บล็อกทั้งหมด

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

1

e2label ไม่ทำงานสำหรับฉันด้วยเลเบลระบบไฟล์ UDF blkid ทำ;

blkid -s LABEL -o value /dev/sdg1

1

หากคุณต้องการคุณสามารถใช้สคริปต์ทุบตีของฉันเพื่อจุดประสงค์นั้น จริง ๆ แล้วมันทำอะไรมากกว่าที่คุณต้องการเล็กน้อยเช่นมันจะแสดงว่ามีการใช้พื้นที่มากแค่ไหน หวังว่าคุณจะชอบมัน :) และฉันก็หวังว่าผลลัพธ์จะเป็นระเบียบเรียบร้อยเหมือนในกล่อง linux ของฉัน ... (หมายเหตุ: มันจะแสดงเฉพาะฮาร์ดแวร์ที่แท้จริงเช่น HDDs และ DVD-ROM ของคุณ แต่นั่นก็เพียงพอแล้วสำหรับวัตถุประสงค์ของฉัน)

หมายเหตุสำคัญ: สคริปต์นี้อาจจะต้องมีการทำงานภายใต้sudoblkidครั้งเดียวเพราะ อย่างน้อยใน distro ของฉันblkid -o exportจะแสดงผลเป็นศูนย์เมื่อทำงานเป็นผู้ใช้ปกติหลังจากบูตเครื่อง นี่เป็นเพราะใน "การเรนเดอร์ผู้ใช้ทั่วไป" ของblkidข้อมูลจะถูกดึงจากแคชไฟล์ (ปกติ/run/blkid/blkid.tab) ซึ่งสามารถเขียนได้โดยเท่านั้นrootและจะต้องมีการรันหนึ่งครั้งภายใต้sudoเพื่อรับข้อมูลที่มีอยู่ในปัจจุบัน

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

ในประเภทเทอร์มินัล Linux (คอนโซล):

blkid

ติดตามโดย Enter

ผลลัพธ์คือรายการอุปกรณ์บล็อกแต่ละรายการมี LABEL และ TYPE


0

ฉันใช้lsblkดังกล่าวข้างต้น แต่ฉันพบตัวเลือกต่อไปนี้สิ่งทอสำหรับทำชุดเสื้อผ้าที่ดีกว่า:

sudo lsblk -o name,mountpoint,tran,fstype,label,size
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.