私は通常Linuxに初めて触れましたが、コマンドラインを使用していくつかの基本的なタスクを実行できます。現在私はManjaro KDEを使用しています。昨日、私は「Linux from Scratch」という本を通してLinuxについてもっと学びました。最後にしたのは、デフォルトのパーティションを25GBに縮小し(cfdiskを使用して)新しいパーティションを作成することでした。すべてが大丈夫でした。予期せず今日 Manjaro にログインしたときにエラーが発生しました。
mount: /new_root: wrong fs type, bad superblock on /dev/nvme0n1p4, missing codepage or helper program, or other error.
そして
sh: can't access tty: job control turned off
緊急シェルに投げられました。前述のように、コマンドラインを使用してファイルを作成、コピー、および編集できますが、これは私がとても上品であるようです。
編集する
すべてが崩れる前に私が最後にしたことは次のとおりです。
初めてcfdiskを使用してデフォルトのパーティションを25.6 GB縮小しました。
次に、cfdiskを使用して新しいパーティション(20GB)を作成しました。
第三に、新しいパーティションをマウントしました。
第四に、新しいパーティションに新しいext4ファイルシステムを作成しました。
それからコンピュータをシャットダウンし、今日始めるとすぐに緊急シェルに入りました。
私は努力しました:
mount /dev/nvme0n1p4 / (in the recovery shell, same Error).
mount /dev/nvme0n1p4 /media/nvme (from a live usb stick, same Error).
このエラーが発生する理由とデータを保存する方法を知っている人はいますか?
答え1
ファイルシステムが配置されているパーティションを縮小する前にファイルシステムの縮小を使用しないと、ファイルresize2fs
システムの尾が切り捨てられます。cfdisk
システムは、ファイルシステムがそのファイルシステムが存在するパーティションよりも大きいと主張し、これはエラーであることを検出します。
ext2/3/4ファイルシステムは大きくする使用すると、縮小それでも最初に削除する必要があります。ルートファイルシステムのように見え、/dev/nvme0n1p4
簡単にアンマウントできず、マウント/
するには特別な手順/
(他の場所にマウントし、実行中のプロセスの数を最小限に抑え、pivot_root
新しいルートファイルシステムへの切り替えを使用)が必要なので、可能性が高すぎます。サイズ変更には正しい手順を使用していません。根ファイルシステム
ルートファイルシステムのサイズを変更する最も簡単な方法は、外部のライブメディアから起動し、それを使用して完全にアンインストール中にインストールされているオペレーティングシステムのルートファイルシステムのサイズを変更することです。もう1つのオプションは、ファイルシステムのサイズ変更ツールがあることを確認し、ルートファイルシステムがまだinitramfs
マウントされていない間、initramfsの起動フェーズ中に起動オプションを使用して起動を中止し、結果として緊急シェルからファイルシステムを縮小することです。
これで問題は、ファイルシステムのサイズを変更するために最初からエラーがあってはならないということです。ファイルシステムの一部を無差別代入でブロックするのは間違いです。
ライブメディアからシステムを起動し、それを使用して作成した新しいパーティション(存在する場合)の内容をマウントしてバックアップし、パーティションを削除してパーティションを元のサイズに復元する必要があります/dev/nvme0n1p4
。その後、これを実行してエラーを確認できる必要がありますe2fsck -C0 /dev/nvme0n1p4
(ファイルシステムの尾部を上書きして発生する可能性があるエラーを修正することもできます)。
次に、ライブメディア環境でルートファイルシステムを一時的な場所にマウントします。
mkdir /media/nvme
mount /dev/nvme0n1p4 /media/nvme
/etc/fstab
そして、それを使用してインストールされているオペレーティングシステム(現在の場所)を編集して作成した新しい/media/nvme/etc/fstab
パーティションへの参照を一時的にコメントアウトします。
その後、ライブメディアを終了し、インストールされているオペレーティングシステムが正常に再起動されていることを確認できます。
その後、ライブメディアから再起動して、ルートファイルシステムのサイズを正しく調整します。
1.) まず、resize2fs /dev/nvme0n1p4 <new-size>
パーティション内のファイルシステムのサイズを変更するために使用されます。サイズ変更後にパーティションが持つ正確なセクタ数がわかっている場合は、それを値として使用できます<new-size>
。それ以外の場合は、ファイルシステムを少し減らす必要があります。小さい単位変換時に丸め(およびデフォルトの2対10)エラーを防ぐために、パーティションを縮小したいサイズよりも大きいサイズ。
2.) 次に、ファイルシステムを含むパーティションを縮小します。この手順の一部として、空き領域を使用して新しいパーティションを作成することもできます。
3.) ライブメディアをシャットダウンし、インストールされているオペレーティングシステムから起動し、まだ正常に動作していることを確認します。ファイルシステムのサイズを新しいパーティションサイズよりも小さくする場合は、resize2fs /dev/nvme0n1p4
自動検出を使用して現在のパーティションサイズと正確に一致するようにファイルシステムを拡張できます。 (はい、ファイルシステムをマウントするときにこれを行うことができます。)
4.) これで、新しいパーティションにファイルシステムを作成し、行のコメントを削除/追加して、新しい/etc/fstab
ファイルシステムをマウントできるようになりました。