私はしばらくの間Pop!_OSを実行していて、Kubuntuをインストールすることにしました。 Kubuntu USBドライブを起動して最初に試し、KDE Partition Managerを使用してインストール用のパーティションを準備することにしました。
このSSDにはすでに4つのパーティションがあります:sda1
(古いWindowsインストール)、sda2
(データ)、sda3
(Pop!_OS)およびsda4
(スワップ)。 Kubuntuの新しいパーティション用のスペースを作成するために、sda2
の末尾を30Gb縮小しましたが、すでに4つのプライマリパーティションがあったため、この未割り当てスペースをフォーマットできませんでした。そこで、sda1
を削除して、未割り当てのスペースをsda2
の右側に移動し、そのスペースをsda2
に追加することにしました。アクションを適用すると、エラー(サイズの不一致に関する何か)が発生し、中止されました。
Pop!_OSで再起動すると、sda2
から取得した30Gbの未割り当てスペースがあり、sda1
は変更されていませんが、sda2
をマウントできません。
GPartedが現在表示している内容は次のとおりです。
sda2
の情報は次のとおりです:
そしてfdisk -l
の出力:
(パーティションテーブルエントリはディスク順ではありません)。
複数の問題が発生する可能性があるため、ここでは触れないでアドバイスを得ることにしました。そのパーティションのデータを回復したいのですが。さらに情報が必要な場合は、お知らせいただければ幸いです。長いスレッドでごめんなさい、そしてあなたの時間をどうもありがとう。
UPDATE:
フィードバックを待つ間、fdiskを使用してパーティションテーブルエントリの順序を修正しようとしました。手順を実行した後(およびGRUBで再起動できるようにするために修正する必要がある場合)、fdiskはそれらを異常として報告しません。
私がしたもう1つのことは、そのパーティションでgpartedのcheck
オプションを使用することでした。これにより、さらに興味深い情報が返されました。
GParted 0.32.0 --enable-libparted-dmraid --enable-online-resize
Libparted 3.2
Check and repair file system (ext4) on /dev/sda2 00:00:00 ( ERROR )
calibrate /dev/sda2 00:00:00 ( SUCCESS )
path: /dev/sda2 (partition)
start: 275396608
end: 782370815
size: 506974208 (241.74 GiB)
check file system on /dev/sda2 for errors and (if possible) fix them 00:00:00 ( ERROR )
e2fsck -f -y -v -C 0 '/dev/sda2' 00:00:00 ( ERROR )
The filesystem size (according to the superblock) is 71051776 blocks
The physical size of the device is 63371776 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort? yes
e2fsck 1.45.3 (14-Jul-2019)
これがすべての原因となったエラーです。その情報を保存できませんでした。パーティションが実際のサイズを知らないように見えますか?最初は270GBを超えていましたが、新しいパーティション用に30GBを削除しました。 Thunarはそれが260GB、Dolphin、GPartedを持っていると報告し、fdiskは240GBを持っていると報告しています。事態を悪化させることなく、どうすればそれを修正できますか?読んでくださった方、本当にありがとうございました。
パーティションを縮小した後、ファイルシステムのサイズを変更するのを忘れたようです。ファイルシステムをパーティションよりも小さくするには、resize2fs
を使用する必要があります。ファイルシステムよりも小さいパーティションは作成できません
resize2fs /dev/sda2 239G
これにより、ファイルシステムがパーティション自体よりも小さくなるように、1ギガのスペースが確保されます。
このアドバイスは、特に保証なしで提供されます。特に、パーティション/ファイルシステムに正確に何が起こったかを知ることができないことを考慮します。
パーティションやファイルシステムに変更を加える前に、生データをバックアップする必要があります。ライブCD/DVD/USBから起動し、ディスク全体を安全な場所にコピーします。 (スペースを節約するために)圧縮された通常のファイルとして保存するのは次のように簡単です。
$ Sudo gzip -c /dev/sda >/path/on/safe/storage/sda.img.gz
つまり、パーティションマネージャーはsda2
(パーティション)を正常に縮小できたようですが、含まれているファイルシステムを縮小できませんでした。
次のコマンドを実行すると、GPartedの発言を確認できます。
$ Sudo fsck.ext4 -v -f /dev/sda2
(中止するように求められた場合はy
と答えます)。
ファイルシステムのサイズを変更する代わりに、sda2
のサイズを元のサイズに戻すことをお勧めします。または、とにかく、右側にある空き領域の量によってsda2
を拡張します。含まれているファイルシステムが破損していない場合は、これにより再びマウントできるようになり、少なくともパーティションを新たに圧縮する前にデータをバックアップできるようになります。
個人的な好みに基づいて、私は GNU parted を使用してパーティションテーブルを編集し、2番目のパーティション(sda2
)を再作成します。
$ Sudo parted /dev/sda
(parted) unit s
(parted) rm 2
(parted) mkpart primary ext4 275396608 843810815
(parted) quit
もちろん、これは最初に投稿したfdisk
出力に基づいています。それ以降変更があった場合は、調整が必要になる場合があります。
(fdisk
の代わりにparted
を使用するのも簡単です。Sudo fdisk /dev/sda
の後に、p
を使用してパーティションテーブルを検査し、d
の後に2
を続けてsda2
を削除します。 n
の後にp
、275396608
が最初のセクターとして続き、最後のセクターは何もありません(連続する空き領域の最後のセクターがデフォルトで選択されます)sda2
、w
to save。次に、更新されたパーティションテーブルについてカーネルに伝えるためにSudo partprobe -s /dev/sda
が必要になる場合があります。
次に、ファイルシステムを確認し(上記のように、fsck.ext4 -v -f /dev/sda2
を使用)、sda2
を再度マウントすることができます。
最後に、sda2
の縮小を再試行することができます。使用しているツール(KDEパーティションマネージャーを含む)がそれを実行できるはずです。一度に1つの操作を保存/適用し(たとえば、sda1
を削除するか、sda2
を縮小するか、sda2
をシフトする...)、それらのいくつかをエンキューしないようにします。これにより、テストされていないコーナーケースに遭遇する可能性が高くなります。