UUID Of A drive yang tidak akan muncul di / dev / disk / by-uuid atau blkid

12

Saya memiliki drive USB yang tidak menerima UUID. Ketika saya melihat isi dari / dev / disk / by-uuid itu tidak ada di sana. Poin dev yang tinggal di partisi adalah di / dev / sdb. Saya dapat melihat sdb di bawah / dev / disk / by-path. Juga, ketika menggunakan blkid, saya mendapatkan output nol. Saya berasumsi bahwa saya mendapat kode kesalahan yang kembali.

Apakah ada cara untuk mendapatkan UUID untuk partisi ini?

Hasil dari 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

Tabel partisi dan partisi dibuat dengan gparted, sehingga dipartisi dan menjalankan perintah mkfs.ext3.

Output dari fsck -n / dev / sdb1

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

Itu diformat sebagai drive ext3. Mengapa itu muncul sebagai ext2?

biksu
sumber
Anda perlu mengklarifikasi perangkat mana yang sedang Anda bicarakan. /dev/sdbtidak akan memiliki UUID, tetapi /dev/sdb1harus jika sudah diformat.
goldilocks
1
Saya merujuk ke / dev / sdb1 yang di bawah / dev / sdb
monksy
Poskan output dari fsck -n /dev/sdb1. Anda juga bisa mencoba untuk memberikannya UUID dengan tune2fs -U random /dev/sdb1kemudian melihat. Tidak peduli apa UUID itu.
goldilocks
diposting [maaf jika ini semakin mengganggu]
monksy
1
Tidak masalah. Bit "superblock invalid" dapat menjelaskan mengapa tidak ada UUID. Jika Anda perlu mencadangkan barang di sana, coba pasang dan lakukan itu, lepaskan dan fsck -y /dev/sdb1; jika Anda tidak dapat memasang itu, jalankan saja fsck dan semoga tidak ada yang hilang. Baca man fsckuntuk perbedaan antara -ndan -y.
goldilocks

Jawaban:

13

Itulah yang seharusnya terjadi.

Ada dua penggunaan sehari-hari dari istilah "disk" atau "drive" yang digunakan di sini: yang pertama mengacu pada perangkat fisik seperti stik usb. Yang kedua mengacu pada partisi sistem file , yang mungkin ada beberapa di satu perangkat fisik.

Node perangkat seperti /dev/sdamerujuk pada indra pertama (perangkat fisik); node perangkat suka /dev/sda1merujuk ke yang kedua (partisi sistem file). Masuk akal? sda1 adalah partisi sistem file pada disk fisik sda. Dimungkinkan untuk memformat seluruh perangkat dengan satu partisi, tetapi itu tidak biasa, jadi secara umum, /dev/sdatidak akan pernah memiliki UUID.

Partisi sistem file memiliki UUID, perangkat fisik tidak . Saya percaya mereka dibuat secara acak ketika filesystem dibuat (itulah sebabnya mereka akan berubah jika Anda, misalnya, memformat ulang partisi, dan mengapa jika Anda memblokir level menyalin partisi dan membuat partisi baru dengan gambar, Anda akan memiliki dua partisi dengan UUID yang sama).

Jadi, perlu diingat bahwa UUID dibuat ketika partisi diformat . Ketika Anda mempartisi disk (misalnya, dengan fdisk), Anda tidak memformat apa pun, Anda hanya mengatur tipe partisi (dan ukuran, dll.) Di tabel partisi, sehingga partisi yang tidak diformat yang baru tidak memiliki UUID.

Akhirnya, karena ini adalah alat yang digunakan untuk memformat partisi yang menetapkan UUID, mungkin alat yang sangat lama tidak dapat melakukan ini. Namun, Anda selalu dapat mengatur yang baru (untuk ext) dengan tune2fs, misalnya:

tune2fs -U random /dev/whatever
goldilocks
sumber
SDA adalah drive utama saya. SDB, SDD, dll adalah drive USB. Saya telah memperbarui jawaban saya untuk memasukkan fdisk -l untuk membuktikan bahwa ia memiliki partisi.
monksy
@monksy: dan simpul perangkat yang tidak melaporkan UUID adalah /dev/sdb1atau /dev/sdb? Seharusnya tidak. Juga, keluaran fdisk tidak menunjukkan bahwa partisi diformat, dan dengan demikian, tidak membuktikan bahwa ia harus memiliki UUID. Saya telah menambahkan beberapa paragraf pendek di atas untuk menjelaskan hal ini.
goldilocks
Itu diformulasikan. Ketika dicolokkan di [item pre fstab] gnome automounter akan memunculkannya. Saya tidak mendapatkan UUID untuk sdb1. Fdisk -l adalah bukti bahwa ada partisi di sana
monksy
1
Saya harus reboot sebelum partisi muncul /dev/disk/by-uuid(Ubuntu 16.04 tetapi mungkin mempengaruhi yang lain). Jadi (1) buat partisi dan sistem file, (2) reboot. Mungkin ada cara non-reboot tapi saya lebih suka memeriksa bahwa semuanya muncul dari boot dingin jadi tidak menyelidiki.
fazy
2

/ Dev / disk / by-uuid diisi saat boot oleh program "partprobe". Jika Anda memiliki disk atau partisi yang partprobe tidak bisa kenali, maka partprobe gagal dengan kesalahan dan berhenti memindai sisa partisi:

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

Itu jelas kesalahan partprobe . Mungkin khusus untuk ubuntu 14.04 (dapat dipercaya). Solusinya adalah menjalankan partprobe secara eksplisit pada partisi yang tidak dipindai:

root@machine1:~# partprobe /dev/sdd1

Perhatikan bahwa partprobe dimulai berkali-kali adalah hasil dari setiap operasi pengelolaan disk, sehingga solusinya berumur pendek.

Arie Skliarouk
sumber
2

Saya telah menemukan bahwa file -sdapat memberikan UUID untuk partisi dalam kasus di mana blkidtidak akan:

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)
mwfearnley
sumber
1

Coba sudo dengan ls -l /dev/disk/by-uuidataublkid /dev/sdb1

Saya memiliki + partisi yang diformat sdb1juga, untuk beberapa alasan itu tidak muncul dalam daftar kecuali saya gunakan sudo.

Gulchrider
sumber