UUID Of Một ổ đĩa sẽ không hiển thị trong / dev / đĩa / by-uuid hoặc blkid


12

Tôi có một ổ USB không nhận được UUID. Khi tôi nhìn vào nội dung của / dev / đĩa / by-uuid, nó không tồn tại ở đó. Điểm dev mà phân vùng sống là trên / dev / sdb. Tôi có thể thấy sdb dưới / dev / đĩa / by-path. Ngoài ra, khi sử dụng blkid, tôi nhận được đầu ra bằng không. Tôi giả sử rằng tôi đã nhận được một mã lỗi trở lại.

Có cách nào để lấy UUID cho phân vùng này không?

Kết quả của 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ảng phân vùng và phân vùng được tạo bằng gparted, vì vậy nó được phân vùng và chạy lệnh mkfs.ext3.

Đầu ra của 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

Nó được định dạng như một ổ đĩa ext3. Tại sao điều đó hiển thị như ext2?


Bạn cần làm rõ thiết bị nào bạn đang nói đến. /dev/sdbsẽ không có một UUID, nhưng /dev/sdb1nên nếu nó đã được định dạng.
goldilocks

1
Tôi đang đề cập đến / dev / sdb1 dưới / dev / sdb
monksy

Đăng đầu ra của fsck -n /dev/sdb1. Bạn cũng có thể thử cho nó một UUID tune2fs -U random /dev/sdb1sau đó xem. Không quan trọng UUID là gì.
goldilocks

đã đăng [xin lỗi nếu điều này đang gây phiền nhiễu]
monksy

1
Không vấn đề gì. Bit "superblock không hợp lệ" có thể giải thích tại sao không có UUID. Nếu bạn cần sao lưu các thứ ở đó, hãy thử gắn nó và làm điều đó, sau đó ngắt kết nối và fsck -y /dev/sdb1; nếu bạn không thể gắn kết nó, chỉ cần chạy fsck và hy vọng không có gì bị mất. Đọc man fsckcho sự khác biệt giữa -n-y.
goldilocks

Câu trả lời:


13

Đó là những gì sẽ xảy ra.

Có hai cách sử dụng thông tục của thuật ngữ "đĩa" hoặc "ổ đĩa" trong trò chơi ở đây: cách đầu tiên đề cập đến một thiết bị vật lý như thanh USB. Thứ hai đề cập đến một phân vùng hệ thống tập tin , trong đó có thể có một số trên một thiết bị vật lý.

Các nút thiết bị như /dev/sdađề cập đến ý nghĩa đầu tiên (thiết bị vật lý); các nút thiết bị như /dev/sda1tham chiếu đến cái thứ hai (phân vùng hệ thống tập tin). Có lý? sda1 là một phân vùng hệ thống tập tin trên sda đĩa vật lý. Có thể định dạng toàn bộ thiết bị với một phân vùng, nhưng điều đó là bất thường, vì vậy, nói chung, /dev/sdasẽ không bao giờ có UUID.

Phân vùng hệ thống tập tin có UUID, thiết bị vật lý thì không . Tôi tin rằng chúng được tạo ngẫu nhiên khi hệ thống tập tin được tạo (đó là lý do tại sao chúng sẽ thay đổi nếu bạn, ví dụ, định dạng lại phân vùng và tại sao nếu bạn chặn cấp sao chép phân vùng và tạo phân vùng mới bằng hình ảnh, bạn sẽ có hai phân vùng với cùng UUID).

Vì vậy, hãy nhớ rằng UUID được tạo khi phân vùng được định dạng . Khi bạn phân vùng đĩa (ví dụ: với fdisk), bạn không định dạng bất cứ thứ gì, bạn chỉ đặt loại phân vùng (và kích thước, v.v.) trong bảng phân vùng, vì vậy các phân vùng chưa được định dạng mới không có UUID.

Cuối cùng, vì nó là công cụ được sử dụng để định dạng phân vùng đặt UUID, nên có thể các công cụ rất cũ có thể không làm điều này. Tuy nhiên, bạn luôn có thể đặt một cái mới (cho máy lẻ) tune2fs, vd:

tune2fs -U random /dev/whatever

SDA là ổ đĩa chính của tôi. SDB, SDD, vv là các ổ USB. Tôi đã cập nhật câu trả lời của mình để bao gồm fdisk -l để chứng minh rằng nó có phân vùng.
tu sĩ

@monksy: và nút thiết bị không báo cáo UUID là /dev/sdb1hay /dev/sdb? Càng về sau càng không nên. Ngoài ra, đầu ra fdisk không chỉ ra rằng một phân vùng được định dạng, và do đó, không chứng minh rằng nó nên có sẵn UUID. Tôi đã thêm một vài đoạn ngắn ở trên để giải thích điều này.
goldilocks

Nó được hình thành. Khi được cắm vào [vật phẩm fstab trước] máy tự động gnome sẽ đưa nó lên. Tôi không nhận được UUID cho sdb1. Fdisk -l chỉ là bằng chứng cho thấy có một phân vùng ở đó
monksy

1
Tôi đã phải khởi động lại trước khi phân vùng xuất hiện /dev/disk/by-uuid(Ubuntu 16.04 nhưng có thể ảnh hưởng đến những người khác). Vì vậy (1) tạo phân vùng (s) và hệ thống tập tin, (2) khởi động lại. Có lẽ có một cách không khởi động lại nhưng tôi thích kiểm tra xem mọi thứ xuất phát từ một chiếc giày lạnh nên không điều tra.
fazy

2

/ Dev / đĩa / by-uuid được điền khi khởi động bởi chương trình "partprobe". Nếu bạn có đĩa hoặc phân vùng mà partprobe không thể nhận ra, thì partprobe bị lỗi và dừng quét phần còn lại của phân vùng:

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

Đó rõ ràng là lỗi về partprobe part . Có lẽ là cụ thể cho Ubuntu 14.04 (đáng tin cậy). Cách giải quyết là chạy partprobe rõ ràng trên phân vùng không được quét:

root@machine1:~# partprobe /dev/sdd1

Lưu ý rằng partprobe được bắt đầu nhiều lần là kết quả của mọi hoạt động quản lý đĩa, vì vậy cách giải quyết là ngắn ngủi.


2

Tôi đã tìm thấy rằng file -scó thể cung cấp UUID cho một phân vùng trong trường hợp blkidsẽ không:

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

Hãy thử sudo với ls -l /dev/disk/by-uuidhoặcblkid /dev/sdb1

Tôi có một phân vùng + sdb1cũng được định dạng , vì một số lý do nó không hiển thị trong danh sách trừ khi tôi sử dụng sudo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.