免責事項:私はこの分野が初めてなので、段階的なガイドが必要です。ありがとうございます!
ローカルネットワークに保存されているISOファイルから起動するので、まずオペレーティングシステムなしでgrubをインストールしたいと思います。 liveCDで起動しました(不安定なシステムが必要なためマウントできません)、最初のステップで停止しました。試しましたが、grub-install /dev/sda
エラーメッセージが表示されますgrub-install: error: cannot open directory '/boot/grub/i386-pc': No such file or directory.
grub-install
そのため、必要なファイルをすべて作成してコピーしましたが、次のように表示されます。grub-install: error: failed to get canonical path of 'aufs'.
Webを検索した結果、ほとんどの回答でシステムがインストールされている場合はchrootを使用する必要があることがわかりましたが(壊れることはありますが)、どのドライブにもUbuntuがインストールされておらず、私の目標は次のとおりです。liveCDのgrubを空のドライブにインストールする。
空のブートローダーで始めたいです。
どうすればいいですか?
よろしくお願いします。
答え1
ISOのみ起動する場合は、完全なLinuxファイル構造は必要ありません。フラッシュドライブにさまざまな形式のグラブをインストールし、同じフラッシュドライブからISOを起動しました。ネットワークブートに必要な正確なグラブブートスタンザは不明です。
再フォーマットされた古いUSB2フラッシュドライブがあります。 40年前のMBRパーティションよりも気に入って最初にgptに設定しました。私が主に使用するgpartedを使用してください。始める前に、msdos(MBR)プライマリパーティションのデバイス、詳細からgptを選択してください。またはpartedまたはgdiskを使用してください。注:これにより、ドライブが完全に消去されます。 sdXはフラッシュドライブです。
sudo parted /dev/sdX mklabel gpt
その後、gpartedを使用して大規模なFAT32パーティションを作成しました。正しく表示するには再起動する必要があり、ファイルエクスプローラはESPパーティションを自動的にマウントしないため、ディスクを使用するか手動でマウントする必要がありました。
Model: Kingston DataTraveler 2.0 (scsi)
Disk /dev/sdc: 1998MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 1998MB 1996MB fat32 esp2 msftdata
それからディスクにマウントし、/media/fredにいました。
/dev/sdc1 on /media/fred/FC87-F75C type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
その後、グラップを取り付けます。私のドライブはsdcとして扱われます。従来のUSB2フラッシュドライブに比べて少し遅いです。
sudo grub-install --root-directory=/media/fred/FC87-F75C /dev/sdc
/boot/grub/grub.cfg に、全体の grub 3 行構成ファイルである構造と汎用 /EFI/ubuntu/grub.cfg を生成します。ただし、/boot/grub/grub.cfg ブートファイルは生成されません。私は通常、これらの参照と以前のメモを使用してローカルISOを起動するために手動で作成します。 grub.cfgを作成する必要がありますが、パスとインストールを含める必要がありますか?ネットワークに。
ISOブートとサンプルリンク
https://help.ubuntu.com/community/Grub2/ISOBoot
その他の例
https://help.ubuntu.com/community/Grub2/ISOBoot/Examples
Googleを使用してネットワークグラップ情報を見つけました。 nfsは機能しませんが、ネットワークブートの例があります。
答え2
システムをインストールする必要はありません。まず、これから例として使用するディスクをマウントする必要がありますsda
。マウントポイントの例/media/usr/DISK
端末で次のコードを使用します。
dirs=(etc bin usr proc sys lib lib64 dev sbin)
for dir in ${dirs[@]}; do
mkdir /media/usr/DISK/$dir
sudo mount --bind /$dir /media/usr/DISK/$dir
done
sudo chroot /media/usr/DISK/ grub-install --target=i386-pc --boot-directory=/ /dev/sda
for dir in ${dirs[@]}; do
sudo umount /media/usr/DISK/$dir
rm -r /media/usr/DISK/$dir
done