今日はちょっとディープな実験をして見たいと思います。イメージファイルを1から自分で作ってlinuxを起動できるかという実験。結論から言うと完全起動はしませんでした。ただし途中までは起動しました。
2019年6月4日 追記
linuxの起動に成功しました。
イメージファイルを作る
dd if=/dev/zero of=./Orig.img bs=10M count=1200
fdisk ./Orig.img (パーティションを2個作る)
losetup -f(空いてるloopbackデバイスをみつける)
losetup /dev/loop1 ./Orig.img
partprobe /dev/loop1
gparted /dev/loop1(フォーマットをした。mkfs /dev/loop1/loop1p1でもok)
ここで一度DVDROM起動のlinuxに切り替えて
losetup -f(空いてるloopbackデバイスをみつける)
(権限をそのままにコピー)
losetup /dev/loop1 ./Orig.img
mount /dev/loop1p1 /media/hdd
mount /dev/sda5 /media/hdd2(linux起動rootをマウント)
cp -r -a /media/hdd2/. /media/hdd
sudo mount --bind /proc /media/hdd/proc
sudo mount --bind /dev /media/hdd/dev
sudo mount --bind /sys /media/hdd/sys
chroot /media/hdd
grub-install/dev/loop1
update-grub
要するにパーティションやファイルシステムを、新規ファイル上に作ってlinuxの起動システムファイルをコピーして、新規ファイルのマスターブートレコードにgrubをインストールした。これでddでSDカードに焼いて起動するかと思ったけど、起動はしなかった。ただし途中までは起動しました。何かの設定ファイルとかがおかしいのかな。どこが原因で起動しないのかまでは私のスキルではわかりません・・。ただ概ね間違ったことはしてないということは分かった。
自分の中で実験は成功かな。
2019年6月4日
fstabにSDカードのGUIDとそれをルートにマウントする設定を追加したらUbuntuが起動しました。イメージを一から作って焼く作戦は成功した模様。大成功!