更新後にArchのgrubを起動できません

更新後にArchのgrubを起動できません

昨日更新しましたが、電源が切れるまでラップトップを再起動しませんでした。再起動後、ハードドライブがないことを発見しました。アーチライブディスクで起動しようとしましたが、最終的にrootfsで終わりました。ここで何をすべきかわかりません。ディスクをマウントしようとしていますが、どこにいるのかわかりません。私はsda,1,2,3,4とsdb,1を持っています。実行時にdu -h /dev/sda*各行の先頭に0を表示します。ところでdf -hまたUSB 0%を使っていると浮かびます。しかし、インストールしてもどうすればいいのかわかりません。 grubまたはGutmibootをどのように再インストールする必要がありますか? (それが問題だと思います。grubのアップデートを見たからです。)

ライブUSBを起動したときに発生するエラーは次のとおりです。

:: running early hook [udev]
:: running hook [udev]
:: Triggering uevents...
:: running hook [memdisk]
:: running hook [archiso]
:: running hook [archiso_loop_mnt]
:: running hook [archiso_pxe_common]
:: running hook [archiso_pxe_ndb]
:: running hook [archiso_pxe_http]
:: running hook [archiso_pxe_nfs]
:: Mounting '/dev/disk/by-label/ARCH_201409' to '/run/archiso/bootmnt'
Waiting 30 seconds for device /dev/disk/by-label/ARCH_201409 ...
[    9.375197] sd 6:0:0:0: [sdb] No Caching mode page found
[    9.375197] sd 6:0:0:0: [sdb] Assuming drive cache: write through
ERROR: '/dev/disk/by-label/ARCH_201409' device did not show up after 30 seconds...
   Falling back to interactive prompt
   You can try to fix the problem manually, log out when you are finished
sh: can't access tty; job control turned off
[rootfs /]#

私はそれをルートにし、今入ってきた。[root@(none)]#

解決策

UnetbootinでArch CDを作成するのに問題があるようです。これには2つのUSBが必要です。 sdbのrootfsに戻り、sdcのUSB2を接続します。 rootfsにはfdiskや何もないので、/mnt、/mnt/boot、/mnt/homeにそれぞれsda1、2、4をインストールしました。次に、/mnt( [root@(none) ]#) でルートを変更します。

そこから私はできます。再フォーマットsdc (archiso を /home/name/wherever にコピーした後) その後、dd bs=4M if=/path/to/arch.iso of=/dev/sdc && sync再起動します。

これは私に一般的なアーチブートを提供し、私はアーチchrootを持っており、正しくsystemctl start dhcpcd.service実行できます。インターネット(イーサネット).成功せずにgrubを再インストールしてみました。

私とゴムブーツ(初心者ガイドに従ってください)。まもなくシステムが機能しました。

答え1

会話をした後、私はそのような問題に直面したときに従うべきいくつかの興味深い手がかりをまとめた答えを投稿しました。

USBイメージのセキュアブート

ここに示すように、USBドライブから起動しようとしたときにシステムにいくつかの問題が発生したようです。

ERROR: '/dev/disk/by-label/ARCH_201409' device did not show up after 30 seconds...
Falling back to interactive prompt
You can try to fix the problem manually, log out when you are finished

BIOSが起動可能なメディアを正常に検出し、起動シーケンスを開始しても、ディスクのエラーの種類によってArchが正しく起動できません。チャットで述べたように、キー内の画像を何度もフォーマットして送信したため、画像やパーティションテーブルが破損する可能性があります。起動可能な ISO イメージを USB ドライブに送信する場合は、通常進む前にドライブが実際にクリーンであることを確認するのが最善です。

$ fdisk /dev/sdX # sdX being your USB drive (NOT partition!)
Command (m for help): d

dパーティションが残りなくなるまで、それを繰り返し使用してください。その後、デバイス全体を占めるクリーンなパーティションを再作成します。

$ fdisk /dev/sdbX
Command (m for help): n
Partition type:
    p   primary (1 primary, 0 extended, 3 free)
    e   extended
Select (default p): p
Partition number (1-4, default 1): 1
# ...

これにより、いくつかのサイズ関連オプションが表示されます。毎回デフォルトを選択してください。完了すると、変更をディスクに書き込むために使用されますw。これでパーティションテーブルが少しきれいになったのでフォーマットできます。

$ mkfs.ext4 /dev/sdX1

...そしてArch ISOをドライブに送ります。

$ dd if=/path/to/arch.iso of=/dev/sdX # Again, the device, NOT the partition.

注:Arch ISOとハードシステムが同じアーキテクチャを共有することが重要です!

この時点でコンピュータを再起動し、問題なくライブシステムに入ることができます。 BIOS起動順序でUSBドライブが最初であることを確認してください。

古いまたは破損したシステムに入る

今これは少しトリッキーです。ほとんど再利用します。アーチウィキ目次。これには2つのオプションがあります。

  • Archスクリプトを使用してください(推奨)。
  • すべてを手動で変更してください。

最初のケースでは、自分で作ったパーティション:システムのインストール時に作成したパーティション:

$ mount -o exec /mnt /dev/sda1      # / partition.
$ mount /mnt/boot /dev/sda2         # /boot partition.
$ mount /mnt/home /dev/sda3         # /home partition.
$ # ... and so on.

完了したら、以下を使用してくださいarch-chroot

$ arch-chroot /mnt /bin/bash

これで、すべてを自分で変更したい場合は、もう少し作業を行う必要があります。まず、古いシステムをマウントしてから、次のものを追加します。

$ mount -t proc proc /mnt/proc/     # procfs
$ mount --rbind /sys /mnt/sys/      # sysfs
$ mount --rbind /dev /mnt/dev/      # /dev
$ mount --rbind /run /mnt/run/      # /run

動作するDNSリゾルバが必要な場合があります(ただし破損する可能性は低い)。

$ cp /etc/resolv.conf /mnt/etc/resolv.conf

最後に入りなさい。

$ chroot /mnt /bin/bash

調査

デフォルトでは、システムの電源がオフになっています。おっしゃるとおり重要な作業が実行されていないので(少なくともアップグレードではない)、ダメージが確実に制限されます。まず、まず、ログを確認してください。終了前に発生したことに関する情報を表示して/var/log使用します。journalctl

GRUBの再インストール

チャットでは、最新のアップデートに関連してブートメニューからシステムを使用できなくなったと述べました。再インストールしてみましょう。

$ pacman -S grub # Should not do anything though.
$ grub-install --recheck /dev/sdX # Your hard drive.
$ grub-mkconfig -o /boot/grub/grub.cfg

関連情報