SDカードリーダーが内蔵された古いラップトップを持っていますが、起動時に利用できません。
ただし、小さな8 GB USBキー(USB 2.0)からブートLinux(Debian)をグラブすることはできますが、非常に低速です。 SDカードははるかに高速であり、別のインターフェイス上にある必要があります。
GrubからSDカードにアクセスできませんが、USBキーからDebianカーネルやvmlinuzをロードして、SDカードのドライバーがカーネルにロードされたら、SDカードからのブートを続行できるかどうか疑問に思っていました。またはinitramfs?
「編集しない」と明記されているため、grub構成ファイルをいじるのをためらっていますが、kernel/vmlinuzとinitramfsに異なるディスクを指定できるようです。方法がわからないので、USBキーからこれらのいずれかをロードすると、SDカードが表示されますか?
USBスティックの/boot/grub.cfgからの関連コードは次のとおりです。
USBスティックで起動する場合:
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-aaaa-aaaa-a’ {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd2,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos1 --hint-efi=hd2,msdos1 --hint-baremetal=ahci2,msdos1 aaaa-aaaa-a
else
search --no-floppy --fs-uuid --set=root aaaa-aaaa-a
fi
echo 'Loading Linux 4.19.0-6-AMD64 ...'
linux /boot/vmlinuz-4.19.0-6-AMD64 root=UUID=aaaa-aaaa-a ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.19.0-6-AMD64
}
SD/MMCカードで起動する場合:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Debian GNU/Linux 10 (buster) (on /dev/mmcblk0p1)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-XXXX-XXXX-X’ {
insmod part_msdos
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root XXXX-XXXX-X
else
search --no-floppy --fs-uuid --set=root XXXX-XXXX-X
fi
linux /vmlinuz root=/dev/mmcblk0p1
initrd /initrd.img
}
それらを組み合わせる方法があるはずだと思いますか?
SDカードから起動するようにしました。
LVMパーティショニングでSDカードをセットアップしたので、基本的なMBRパーティショニングとしてのみセットアップされたため、lvm2をUSBキーにインストールする必要がありました。
追加した:
insmod lvm
insmod ext2
に:
### BEGIN /etc/grub.d/05_debian_theme ###
そして:
root=/dev/mapper/debian--vg-root
適切なメニューエントリに。
ただし、initramfsファイルはUSBとSDで異なるため、SDの起動時にすべてが正しくロードされるわけではありません。
USBインストールはシェルのみの最小限のブートであり、SDはデスクトップマネージャーを使用したフルインストールなどです。
私がしたいのは、両方を別々にして、それぞれのinitramfsファイルで両方を起動できるようにすることです。 USBカードに対してこれを行うことができ、SDカードが起動するための個別のエントリがありますが、それは最小限のUSB initramfsファイルを使用しています。
SDカードは、/ dev/mmcblk0p1をブートパーティションと見なします。
これにより、さらに2つの質問が生じます。
SDカードのブートフォルダーの場所をgrub configに伝えるにはどうすればよいですか? grub.cfgで指定できますか?すべてのファイルを/ dev/mmcblk0p1パーティションからUSBキーの/ boot/bootsdにコピーしました。
USBフォルダー/ boot/bootsdをSDカードの/ bootとして設定するにはどうすればよいですか? fstabとシンボリックリンクを使用しますか?
編集3:
私はそれを理解したと思います-単に変更しました:
initrd /initrd.img
に:
initrd /bootsd/initrd.img
次に、UUIDを使用して、SDカードにUSB sdc1のfstabエントリを作成しました。次に、SDシステム上の/ media/usbboot/boot/bootsdから/ bootへのlnエイリアスを作成しました。
私はまだnon-free wifiを設定していないので、apt-get更新を実行していませんが、機能することを前提としています。
先週、新しい高速のnvmeカードが搭載されたコンピューターにXubuntuをインストールしましたが、そのコンピューターの起動時に認識されません。
XubuntuはインストーラーUbiquityを使用しており、インストール中にパーティション分割ウィンドウで、手動パーティション分割を意味する「Something other」を選択しました。
現在のDebianインストーラーでも非常によく似たことができると思います。古いテキストモードのDebianインストーラーで個別のブートパーティションとホームパーティションを使用して手動でパーティションを作成しました。新しいインストーラーでそれができない場合は、おそらく古いテキストモードインストーラーにフォールバックできます。
mmcblk0
とその最初のパーティションmmcblk0p1
PCI経由で接続されている場合)。次に続行して、インストーラーにジョブを実行させます。