web-dev-qa-db-ja.com

既存のLubuntuインストールにgrubをインストールする方法は?

USBフラッシュにLubuntu 16.04があります。動作しましたが、grubのインストールに失敗しました。

今、私はgrubをインストールするのに苦労しています。

私は今ライブCDにいます。私がすべきことはありますか?

私はパーティションをマウントして実行しようとしました:

grub-install --root-directory=/mnt /dev/sda

しかし、これは失敗します

The file /mnt/boot/grub/stage1 not read correctly..

これを解決するには?

2
Ionică Bizău

ローカルドライブ chroot環境をセットアップする をマウントし、そこにgrubをインストールする必要があります。

  1. 使用するパーティションを/としてマウントします(ドライブ/dev/sdb/パーティションsdb1を呼び出しますシステムによって異なる場合は、どこかで正しいものを使用する必要があります

    Sudo mount /dev/sdb1 /mnt/foo
    
  2. grubがアクセスする必要があるディレクトリをバインドします

    Sudo mount --bind /dev /mnt/foo/dev && 
    Sudo mount --bind /dev/pts /mnt/foo/dev/pts && 
    Sudo mount --bind /proc /mnt/foo/proc && 
    Sudo mount --bind /sys /mnt/foo/sys
    
  3. chroot環境をセットアップする

    Sudo chroot /mnt/foo
    
  4. Grubの構成ファイルを作成します。

    Sudo grub-mkconfig -o /boot/grub/grub.cfg
    

    複数のオペレーティングシステムがインストールされている場合は、上記のコマンドにすべてのオペレーティングシステムがリストされていることを確認してください。例えば:

    $ Sudo grub-mkconfig -o /boot/grub/grub.cfg
    Generating grub.cfg ...
    Found background image: /usr/share/images/desktop-base/desktop-grub.png
    Found linux image: /boot/vmlinuz-3.10-2-AMD64
    Found initrd image: /boot/initrd.img-3.10-2-AMD64
    Found linux image: /boot/vmlinuz-3.2.0-4-AMD64
    Found initrd image: /boot/initrd.img-3.2.0-4-AMD64
    Found linux image: /boot/vmlinuz-3.2.0-3-AMD64
    Found initrd image: /boot/initrd.img-3.2.0-3-AMD64
    Found linux image: /boot/vmlinuz-3.2.0-2-AMD64
    Found initrd image: /boot/initrd.img-3.2.0-2-AMD64
    Found memtest86+ image: /boot/memtest86+.bin
    Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin
    Found Windows 7 (loader) on /dev/sda2
    done
    
  5. ドライブのMBRにgrubをインストールします(/dev/sdbを実際にインストールするドライブに変更することを忘れないでください)

    grub-install /dev/sdb
    grub-install --recheck /dev/sdb
    
  6. chrootを終了し、すべてをアンマウントして、実行中のシステムを通常に戻します。

    exit
    Sudo umount /mnt/foo/dev/pts /mnt/foo/dev /mnt/foo/proc /mnt/foo/sys /mnt/foo
    
  7. ドライブから起動してみてください。今回はgrubメニューが必要です。

5
terdon