/ dev / disk / by-uuidまたはblkidに表示されないドライブのUUID


12

UUIDを受信して​​いないUSBドライブがあります。/ dev / disk / by-uuidの内容を見ると、そこには存在しません。パーティションが存在する開発ポイントは/ dev / sdbにあります。/ dev / disk / by-pathでsdbを確認できます。また、blkidを使用すると、出力がゼロになります。エラーコードが返されたと想定しています。

このパーティションのUUIDを取得する方法はありますか?

の結果 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

パーティションテーブルとパーティションはgpartedで作成されたため、パーティションに分割され、コマンドmkfs.ext3を実行しました。

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

それはext3ドライブとしてフォーマットされました。なぜそれがext2として表示されるのですか?


話しているデバイスを明確にする必要があります。/dev/sdbUUIDはありませんが、フォーマットされている場合/dev/sdb1必要です。
goldilocks 2013

1
私は/ dev / sdbの下にある/ dev / sdb1を参照しています
monksy

の出力を投稿しますfsck -n /dev/sdb1。また、UUIDを指定してみることもできtune2fs -U random /dev/sdb1ます。UUIDが何であるかは関係ありません。
goldilocks 2013

投稿[これが煩わしい場合は申し訳ありません]
monksy

1
問題ない。「スーパーブロック無効」ビットは、UUIDがない理由を説明している場合があります。そこにデータをバックアップする必要がある場合は、マウントしてそれを実行してから、アンマウントしてくださいfsck -y /dev/sdb1。マウントできない場合は、fsckを実行するだけで、何も失われません。読むman fsckの違いのために-n-y
goldilocks 2013

回答:


13

それが起こるはずです。

ここで使われている「ディスク」または「ドライブ」という言葉には、口語的な使い方が2つあります。1つ目は、USBスティックなどの物理デバイスを指します。2つ目は、1つの物理デバイス上に複数存在するファイルシステムパーティションを指します。

のようなデバイスノード/dev/sdaは、最初の感覚(物理デバイス)を指します。のようなデバイスノード/dev/sda1は、2番目の(ファイルシステムパーティション)を指します。理にかなっていますか?sda1は、物理ディスクsda上のファイルシステムパーティションです。デバイス全体を1つのパーティションでフォーマットすることは可能ですが、これは一般的で/dev/sdaはないため、通常、UUIDはありません。

ファイルシステムパーティションにはUUIDがあります、物理デバイスにはありません。私はそれらがファイルシステムの作成時にランダムに作成されると信じています(これが、たとえばパーティションを再フォーマットすると変更される理由であり、パーティションをブロックレベルでコピーしてイメージで新しいパーティションを作成すると、2つのパーティションを持つことになります同じUUIDで)。

したがって、パーティションがフォーマットれるときに UUIDが作成されることに注意してください。ディスクをパーティション化するとき(たとえば、fdiskを使用)、何もフォーマットせず、パーティションテーブルでパーティションの種類(およびサイズなど)を設定するだけなので、フォーマットされていない新しいパーティションにはUUIDがありません。

最後に、UUIDを設定するのはパーティションのフォーマットに使用されるツールであるため、非常に古いツールではこれができない可能性があります。ただし、次のようにして、常に新しいext(for ext)を設定できますtune2fs

tune2fs -U random /dev/whatever

SDAは私のメインドライブです。SDB、SDDなどはUSBドライブです。パーティションがあることを証明するために、fdisk -lを含めるように回答を更新しました。
monksy

@monksy:UUIDを報告しないデバイスノードは、/dev/sdb1または/dev/sdb?後者はすべきではありません。また、fdiskの出力は、パーティションがフォーマットされていることを示していないため、使用可能なUUIDがあること証明していません。これを説明するために、上にいくつかの短い段落を追加しました。
goldilocks 2013

フォーマットされています。[pre fstab items]に接続すると、gnome automounterが起動します。sdb1のUUIDを取得していません。fdisk -lは、そこにパーティションがあることの証明にすぎません
monksy

1
パーティションが表示される前に再起動する必要がありました/dev/disk/by-uuid(Ubuntu 16.04がおそらく他のユーザーに影響します)。したがって、(1)パーティションとファイルシステムを作成し、(2)再起動します。おそらく再起動しない方法があるでしょうが、私はすべてがコールドブートから起動することを確認することを好んだため、調査しませんでした。
16

2

/ dev / disk / by-uuidは、プログラム「partprobe」によって起動時に入力されます。partprobeが認識できないディスクまたはパーティションがある場合、partprobeはエラー失敗し残りのパーティションのスキャンを停止します。

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

これは明らかにpartprobeパーツのエラーです。おそらくubuntu 14.04に固有(信頼できる)。回避策は、スキャンされなかったパーティションで明示的にpartprobeを実行することです。

root@machine1:~# partprobe /dev/sdd1

partprobeが何度も開始されるのは、すべてのディスク管理操作の結果であるため、回避策は短期間しか有効ではないことに注意してください。


2

私はそれfile -sができblkidない場合にパーティションのUUIDを与えることができることを発見しました:

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

ls -l /dev/disk/by-uuidまたはでsudoを試してくださいblkid /dev/sdb1

パーティション化+フォーマットsdb1も行っていますが、何らかの理由で、を使用しないとリストに表示されませんsudo

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.