UUID Of / dev / disk / by-uuid veya blkid'de görünmeyen bir sürücü


12

Bir UUID almayan bir USB sürücüm var. / Dev / disk / by-uuid içeriğine baktığımda orada yok. Bölümün yaşadığı dev noktası / dev / sdb üzerindedir. Sdb dosyasını / dev / disk / by-path altında görebiliyorum. Ayrıca, blkid kullanırken sıfır çıktı alıyorum. Geri dönen bir hata kodu var varsayıyorum.

Bu bölüm için UUID almanın bir yolu var mı?

Sonucu fdisk -l /dev/sdb:

Disk /dev/sdb: 320.1 GB, 320072932352 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142446 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: 0x00082145

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   625141759   312569856   83  Linux

Bölüm tablosu ve bölüm gparted ile oluşturuldu, bu yüzden bölümlendi ve mkfs.ext3 komutunu çalıştırdı.

Fsck -n / dev / sdb1 çıkışı

fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
fsck.ext2: Superblock invalid, trying backup blocks...
zwei was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
zwei: 11/19537920 files (0.0% non-contiguous), 1275097/78142464 blocks

Bir ext3 sürücüsü olarak biçimlendirildi. Neden ext2 olarak görünüyor?


Hangi cihazdan bahsettiğinizi açıklığa kavuşturmanız gerekir. /dev/sdbbir UUID olmaz, ancak /dev/sdb1gerektiği takdirde o biçimlendirildi.
goldilocks

1
/ Dev / sdb altında bulunan / dev /
sdb1'den bahsediyorum

Çıktısını gönderin fsck -n /dev/sdb1. Ayrıca tune2fs -U random /dev/sdb1daha sonra görmek ile bir UUID vermeye çalışabilirsiniz . UUID'nin ne olduğu önemli değil.
goldilocks

gönderildi [Bu can sıkıcı oluyor üzgünüm]
monksy

1
Sorun değil. "Süper blok geçersiz" bit neden UUID olmadığını açıklayabilir. Orada bir şeyler yedeklemeniz gerekiyorsa, monte etmeyi ve bunu yapmayı deneyin, ardından bağlantısını kesin ve fsck -y /dev/sdb1; Eğer monte edemezseniz, sadece fsck'i çalıştırın ve umarım hiçbir şey kaybolmaz. Oku man fsckarasındaki fark için -nve -y.
goldilocks

Yanıtlar:


13

Bunun olması gerekiyordu.

Burada oyunda "disk" veya "sürücü" teriminin iki konuşma dili kullanımı vardır: birincisi usb çubuğu gibi fiziksel bir aygıtı ifade eder . İkincisi , bir fiziksel aygıtta birkaç tane olabilen bir dosya sistemi bölümüne karşılık gelir .

Gibi cihaz düğümleri /dev/sdailk anlamda (fiziksel cihazlar); gibi cihaz düğümleri /dev/sda1ikinci (dosya sistemi bölümleri) bakın. Mantıklı olmak? sda1, fiziksel disk sda'sındaki bir dosya sistemi bölümüdür. Tüm cihazı tek bir bölümle biçimlendirmek mümkündür, ancak bu olağandışıdır, bu nedenle genel olarak /dev/sdahiçbir zaman bir UUID'ye sahip olmayacaktır.

Dosya sistemi bölümlerinin UUID'leri vardır, fiziksel cihazlarda yoktur . Dosya sistemi oluşturulduğunda rastgele oluşturulduğuna inanıyorum (bu yüzden örneğin bir bölümü yeniden biçimlendirirseniz değişecekler ve neden bir bölümü kopyalayıp blokla yeni bir bölüm oluşturursanız, iki bölümünüz olacak aynı UUID ile).

Bu nedenle, bölüm biçimlendirildiğinde UUID'nin oluşturulduğunu unutmayın . Bir diski (örneğin, fdisk ile) bölümlediğinizde, hiçbir şeyi biçimlendirmezsiniz, bölüm tablosunda bölüm türünü (ve boyutunu vb.) Ayarlıyorsunuz, böylece yeni biçimlendirilmemiş bölümlerin UUID'si yok.

Son olarak, UUID'yi ayarlayan bölümü biçimlendirmek için kullanılan araç olduğundan, çok eski araçların bunu yapamayabilir. Bununla birlikte, her zaman aşağıdakileri içeren yeni bir tane (ext için) ayarlayabilirsiniz tune2fs, örneğin:

tune2fs -U random /dev/whatever

SDA benim ana diskim. SDB, SDD vb. USB sürücülerdir. Cevabımı, bir bölümü olduğunu kanıtlamak için fdisk -l'yi içerecek şekilde güncelledim.
monksy

@monksy: ve bir UUID bildirmeyen cihaz düğümü /dev/sdb1veya /dev/sdb? Daha sonra olmamalı. Ayrıca, fdisk çıkışı bir bölümün biçimlendirildiğini göstermez ve bu nedenle kullanılabilir bir UUID olması gerektiğini kanıtlamaz . Bunu açıklamak için birkaç kısa paragraf ekledim.
goldilocks

Oluşur. [Pre fstab öğeleri] takıldığında gnome automounter onu getirir. Sdb1 için bir UUID almıyorum. Fdisk -l sadece orada bir bölüm olduğunu
kanıtlıyor

1
Bölüm geldi önce yeniden başlatmak zorunda kaldı /dev/disk/by-uuid(Ubuntu 16.04 ama muhtemelen başkalarını etkiler). Böylece (1) bölümler ve dosya sistemleri oluşturun, (2) yeniden başlatın. Muhtemelen yeniden başlatma olmayan bir yol var ama her şeyin soğuk bir bottan geldiğini kontrol etmeyi tercih ettim, bu yüzden araştırmadım.
fazy

2

/ Dev / disk / by-uuid önyükleme sırasında "partprobe" programı tarafından doldurulur. Partprobe'un tanıyamayacağı bir disk veya bölümünüz varsa, partprobe hatayla başarısız olur ve kalan bölümlerin taranmasını durdurur :

root@machine1:~# partprobe 
Error: /dev/mapper/sda5_crypt: unrecognised disk label
root@machine1:~# 

Bu kesinlikle partprobe kısmında hata . Muhtemelen Ubuntu 14.04'e (güvenilir) özgüdür. Geçici çözüm, partprobe'u taranmayan bölümde açıkça çalıştırmaktır:

root@machine1:~# partprobe /dev/sdd1

Partprobe'un birçok kez başlatıldığını, her disk yönetim işleminden kaynaklandığını unutmayın, bu nedenle geçici çözüm kısa ömürlüdür.


2

Ben olmaz file -sbir durumda bir bölüm için UUID verebilir bulduk blkid:

sudo file -s /dev/sda1
/dev/sda1: Linux rev 1.0 ext2 filesystem data (mounted or unclean), UUID=ef55765f-dae5-426f-82c4-0d98265c5f21 (needs journal recovery)

1

Sudo ile ls -l /dev/disk/by-uuidveyablkid /dev/sdb1

Ben de bölümlenmiş + biçimlendirilmiş sdb1, ben kullanmadıkça nedense listede görünmüyor sudo.

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.