web-dev-qa-db-ja.com

uefiブートでライブシステムからssdにdebianlinuxをインストールする方法

システムを起動したoverclockix(debianベース)のUSBドライブがあります。接続されているSATASSDドライブにインストールする方法を見つけようとしています。私は次のことを試みました:

SSDにfdiskを使用して次のパーティションを作成しました。

/dev/sda1 /boot ext2 (bootable) 
/dev/sda2 / ext4
/dev/sda3 /var ext4
/dev/sda4 /home ext4
/dev/sda5 none swap
partprobe /dev/sda

Mkfsを実行しました。各パーティションとsda5のmkswap。

次に、パーティションをマウントしました。

mount /dev/sda2 /mnt
mkdir /mnt/boot /mnt/var /mnt/home
mount /dev/sda1 /mnt/boot
mount /dev/sda3 /mnt/var
mount /dev/sda4 /mnt/home

次に、USBからファイルをコピーしました。

rsync -avp --exclude /proc --exclude /boot --exclude /home --exclude /var --exclude /sys --exclude /dev --exclude /run / /mnt
rsync -avp /var /mnt/var
rsync -avp /boot /mnt/boot 
rsync -avp /home /mnt/home

次に、マウントされたproc、sys、run、devをバインドします。

mkdir /mnt/proc /mnt/run /mnt/sys /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /dev /mnt/dev
mount --bind /run /mnt/run

次に、/ mntにchrootしました。

chroot /mnt /bin/bash

新しいfstabを作成しました:

blkid >> /etc/fstab
vi /etc/fstab
UUID=<UUID> <mpoint> <type> defaults(or sw)  0 2

次に、grub-install/boot/dev/sdaを実行しましたが、エラーは返されませんでした。

Chrootを終了し、パーティションをアンマウントし、USBを取り外して、再起動しました。

これにより、grubで起動するUSB​​デバイス上にあるものとほぼ同じファイルシステムが作成されると思いました。しかし、ドライブから起動できませんでした。 UEFIと関係があると思いますが、他に何をする必要があるのか​​よくわかりません。

どんな助けでもありがたいです、ありがとう。

2
Gregory Wolf

ブートパーティションsda2をFat32にフォーマットします。これは、ESPパーティションとして使用されます。

パーティションをマウントし、mount /dev/sda1 /mnt/bootを次のように置き換えます。

mount /dev/sda1 /mnt/boot/efi

実行:

for i in /sys /proc /dev; do mount --bind $i /mnt$i; done

インターネットを機能させてから、rootを変更します。

cp /etc/resolv.conf /mnt/etc/
chroot /mnt /bin/bash

インストールgrub

apt-get install --reinstall grub-efi
update-grub
exit
for i in /sys /proc /dev; do umount /mnt$i; done

パーティションをアンマウントして再起動します

3
GAD3R

uEFIブートあり

これを少し拡張して、残りの答えが理にかなっているようにします。

古いスタイルのIBM互換PCでは、ファームウェアは起動時にロードされます。これは通常BIOSファームウェアであり、haarddiskでMBRレコードを検索し、それを読み取り、ブートセクター、第1ステージのブートローダーなどを実行します。これは、WindowsまたはLinuxを起動する場合も同じです。異なるブートローダーを取得するだけです。または、複数のブートローダー(例: grubからウィンドウをチェーンするとき。

BIOSは1985年頃からの基本的なシステムであり、最近のPCにはやや欠けています。下位互換性のために使用しました。

それ以来、EFIに置き換えられました。 EFIは 明確に定義されています そしてはるかに有能です。ブートセクタは使用しません。代わりに、 [〜#〜] gpt [〜#〜] パーティションディスクを調べ、 EFIシステムパーティション を見つけて、そこからファイルを読み取ります。通常、これにはboot.efiのようなものが含まれます。* 1

EFIシステムパーティションが起動するために存在している必要があります。 EFI実装が理解できる形式である必要があります。 EFIが理解するために必要なファイルシステムが1つあり、そのファイルシステムはたまたまFAT32と100%互換性があります。* 2

セットアップでは、いくつかのパーティションを作成していることが示されていますが、いずれもEFIシステムパーティションではありません。 BIOS、coreboot、またはCSMの起動に関する古いガイドに従っていると思います。

背景とそれが機能しなかった理由についてはこれだけですが、それでも主要な質問には答えられません。

UEFIブートでライブシステムからssdにdebianlinuxをインストールするにはどうすればよいですか?

から wiki.debian.org/UEFI
"DebianはEFIブートローダーにgrub-efiをインストールします"。

これは.efiファイルであり、EFIシステムパーティションにインストールする必要があります。あなたが持っていないもの。もう一度開始し、適切なタイプ(識別子C12A7328-F81F-11D2-BA4B-00A0C93EC93B)の追加パーティションでディスクをパーティション分割します。 FAT32にフォーマットします。 grub-efiを読み、UEFIが有効になっている場合はカーネルを確認します。次に、適切なタイミングでapt-get install --reinstall grub-efi-AMD64を発行するか、efibootmgrで遊んでください。



* 1:注:Grub2はEFI互換です。

* 2:1つの既知の例外:Apple EFIもHFSをグロクします。必要に応じて、通常の形式も理解します。

1
Hennes