私のデバイスに新しいOSをフラッシュしていますが、プロセスが完了すると起動できません。その後、ディスクを確認してみると奇妙な点が見つかりました。
サイズは約120 GBでなければなりませんが、ツールごとに異なるディスクサイズを報告します。
だから私は次のように決めました。
dd if=/dev/zero of=/dev/sda
しかし、結果はほぼ同じです。
そしてlsblk
:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 115.2G 0 disk
├─sda1 8:1 1 243M 0 part
└─sda2 8:2 1 2.2G 0 part
そしてfdisk
:
$ fdisk -l /dev/sda
Disk /dev/sda: 7.66 GiB, 8225689600 bytes, 16065800 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
Disklabel type: dos
Disk identifier: 0xaeaa381a
そしてcfdisk
:
Disk: /dev/sda
Size: 7.66 GiB, 8225689600 bytes, 16065800 sectors
Label: dos, identifier: 0xaeaa381a
Device Boot Start End Sectors Size Id Type
>> Free space 2048 16065799 16063752 7.7G
ハードウェアの経験はありません。したがって、ディスクはまだ〜120Gにあります。
空き容量を取り戻すにはどうすればよいですか?
答え1
「新しいオペレーティングシステムをデバイスにフラッシュする」とは、パーティションテーブルを含むディスクイメージ全体を書き込むことを意味しますか?
もちろん、dd if=/dev/zero of=/dev/sda
DOSタイプのパーティションテーブルを上書きする必要がありますが、後でディスクの再スキャンをトリガしない場合、システムはまだ以前のパーティションテーブルの情報を使用します。
キャッシュされたパーティションテーブル情報には、イメージが作成されたソースディスクのサイズも含まれているため、愚かなfdisk
ツールcfdisk
です。一方、lsusb
ディスクの実際のサイズを見て、パーティションテーブルに報告された合計サイズを無視してください。
partprobe /dev/sda
可能であれば、どちらかを試してくださいecho 1 > /sys/block/sda/device/rescan
(両方のコマンドはroot権限が必要です)。
イメージング操作後にディスクの合計サイズを識別するなど、既存のパーティションテーブルを非破壊的に更新する必要がある場合、このgrowpart
ツールはおそらく最も簡単な方法です。