web-dev-qa-db-ja.com

なぜlsblkがフォーマットされたデバイスの古いFSTYPEとLABELを表示するのですか?

Partedを使用して外部ハードドライブ(sdc)をntfsにフォーマットし、1つのプライマリパーティション(sdc1)を作成しました。デバイスをフォーマットする前に SystemRescueCd は、ブート可能なUSBとして使用するために、コマンドddを使用して外付けハードドライブにインストールされました。ただし、lsblk -fでデバイスを一覧表示すると、フォーマットされたデバイス(sdc)の古いFSTYPE(iso9660)とLABEL(sysrcd-5.2.2)が引き続き表示されます。

NAME       FSTYPE      LABEL           UUID   MOUNTPOINT
sda                                                                            
├─sda1     ntfs        System Reserved                       
├─sda2     ntfs                                               
├─sda3     ntfs                                               
├─sda4                                                                         
sdc        iso9660     sysrcd-5.2.2                     
└─sdc1     ntfs        sysrcd-5.2.2          /run/media/user/sysrcd-5.2.2

lsblk -fの出力に示されているように、パーティションsdc1のFSTYPEのみが正しく、sdc1パーティションLABEL、sdcブロックデバイスFSTYPEおよびLABELが間違っています。 nautilus GUIアプリも古いデバイスラベル(sysrcd-5.2.2)を表示しています。

新しいパーティションテーブルを作成した後、partedは、デバイスをntfsにフォーマットする前にシステムを再起動するよう提案しましたが、代わりにsdcをアンマウントすることにしました再起動の。

  • システムを再起動していないため、カーネルがまだ古いFSTYPEとLABELを使用している可能性がありますか?古いFSTYPEとLABELを取り除くためにシステムを再起動する必要がありますか?
  • 再起動の代わりに、ブロックデバイスのFSTYPEとLABELの名前を手動で変更して、外付けハードドライブに同梱されていた元のFSTYPEとLABELに変更する方法はありますか?
2
MyWrathAcademia

元の投稿のlsblk -fの出力から、インストールされているSystemRescueCdの署名が外部ハードドライブにまだ存在しているのではないかと疑っていました。そのため、_sdcおよびsdcのすべてのパーティションに関する情報を出力するコマンドwipefs /dev/sdcおよびwipefs /dev/sdc1を実行しました。

[root@Fedora user]# wipefs /dev/sdc
DEVICE OFFSET TYPE    UUID                   LABEL
sdc    0x8001 iso9660                        sysrcd-5.2.2
sdc    0x1fe  dos                            
[root@Fedora user]# wipefs /dev/sdc1
DEVICE OFFSET TYPE UUID             LABEL
sdc1   0x3    ntfs  
sdc1   0x1fe  dos

上記の出力では、SystemRescueCdによって作成されたiso9660パーティションテーブルがまだ存在していることが確認されました。 lsblkは、dos(マスターブートレコード)パーティションテーブルではなく、iso9660パーティションテーブルのTYPEおよびLABELを使用していました。 lsblkを取得して正しいパーティションテーブルを表示するには、iso9660パーティションテーブルを削除する必要がありました。 ddを使用して、ブロック(ディスク)デバイスからパーティションテーブルの署名を一掃することもできますが、ddは他のパーティションテーブルを一掃することもできます。

特定のパーティションテーブルシグネチャのみをワイプの対象とするため、wipefsとは異なり、ddを使用すると、パーティションテーブルを再作成する必要がないため、wipefsが推奨されました。コマンドwipefs-aオプションは、デバイスで使用可能なすべての署名を消去しますが、コマンドwipefs-tオプションを-aオプションと一緒に使用すると、署名の消去が特定のタイプのパーティションテーブル。以下では、iso9660パーティションテーブルをワイプします。ブロックデバイスのパーティションテーブルシグネチャを消去する場合は、-f--force)オプションが必要です。

[root@Fedora user]# wipefs -a -t iso9660 -f /dev/sdc
/dev/sdc: 5 bytes were erased at offset 0x00008001 (iso9660): 43 44 30 30 31

iso9660パーティションテーブルを消去した後、パーティションテーブルを再度チェックして、パーティションテーブルiso9660が消去されたことを確認します。

[root@Fedora user]# wipefs /dev/sdc
DEVICE OFFSET TYPE UUID LABEL
sdc    0x1fe  dos       
[root@Fedora user]# wipefs /dev/sdc1
DEVICE OFFSET TYPE UUID             LABEL
sdc1   0x3    ntfs 34435675G36Y4776 
sdc1   0x1fe  dos 

しかし、問題のあるiso9660パーティションテーブルが消去されたため、以前に使用されていたiso9660パーティションテーブルのラベルが存在しないため、lsblkはパーティションのUUIDをマウントポイントディレクトリ名として使用しています。

NAME       FSTYPE      LABEL           UUID   MOUNTPOINT
sda                                                                            
├─sda1     ntfs        System Reserved                       
├─sda2     ntfs                                               
├─sda3     ntfs                                               
├─sda4                                                                         
sdc                            
└─sdc1     ntfs        34435675G36Y4776          /run/media/user/34435675G36Y4776

ラベルのあるすべてのパーティションをリストする/dev/disk/by-labelディレクトリで、どのボリューム(つまりパーティション)にラベルがあるかを確認できます。

[root@Fedora user]# ls -l /dev/disk/by-label
total 0
lrwxrwxrwx. 1 root root 10 Apr 30 19:47 'System\x20Reserved' -> ../../sda1

パーティション上のntfsファイルシステムsda1は、ラベルが付いている唯一のパーティションです。

マウントポイントのディレクトリ名をより人間が読めるようにするために、パーティションsdc1上のntfsファイルシステムのラベルを何もない(空の文字列)から「新しいラベル」に変更します。ファイルシステムのラベルを変更するコマンドは、ファイルシステムによって異なります 12ntfsファイルシステムの場合、ラベルを変更するには、コマンドntfslabelを使用します。

ntfslabel /dev/sdc1 "new-label"

ntfsファイルシステムのラベルを変更した後、lsblkは、"new-label"をマウントポイントのディレクトリの名前として使用します。

NAME       FSTYPE      LABEL           UUID   MOUNTPOINT
sda                                                                            
├─sda1     ntfs        System Reserved                       
├─sda2     ntfs                                               
├─sda3     ntfs                                               
├─sda4                                                                         
sdc                            
└─sdc1     ntfs        new-label          /run/media/user/new-label

注意:また、デバイスsdcには、他のすべてのブロックデバイス(sdaなど)のように、ファイルシステムタイプとラベルがなくなりました。ファイルシステムはデバイスではなくパーティション上にあり、列ヘッダーLABELはデバイスラベルではなくファイルシステムラベルであるため、パーティションのみファイルシステムタイプにする必要があります。

2
MyWrathAcademia

lsblkはおそらく最初に最初のセクターを検査して、デバイスに含まれるファイルシステムタイプを確認します。何も見つからない場合のみ、ファイルシステムスーパーブロックの「通常の」場所に移動します。

Iso9660は最初のセクターのデータから認識できるため、lsblkはそれ以上調べず、そこからボリュームラベルも抽出します。

パーティションテーブルを作成するだけで、最初のセクターのほとんどがそのまま残ります。そのため、これが表示されます。

たとえば、最初のセクターを最初にワイプする必要があります。 dd if=/dev/zero of=/dev/sdc count=1その後、パーティションテーブルを再作成します。同じパラメーターを使用して再作成しても、以前に作成したNTFSファイルシステムはそのまま残ります。

0
wurtel

パーティションテーブルを(ルートとして)再度読み取ってみましたか?

partprobe /dev/sdc
0
mazs