過去2日間、ブート可能なdebian(jessie / 8.4)イメージを作成しようとしており、手順が正しいと言えば、ファイルシステムを正しく取得できません。私はここで何か間違ったことをしている、マウントで何かを見逃していると比較的確信しています/etc/fstab
(私の画像にはありません)。私は、経験のある人が助けてくれたり、不足しているものを見せてくれることを望んでいました。
qemu-system-x86を起動するときに表示されるエラーは次のとおりです。
テキストとして、そして実際のスクリーンショットとして:
エラー:
fsck: error 2 (No such file or directory) while executing fsck.ext2 for /dev/sda1
fsck exited with status code 8
[FAILED] Failed to start Load/Save Random Seed
See `systemctl status systemd-random-seed.service` for details.
[FAILED] Failed to start Various fixups to make systemd work better on Debian.
See `systemctl status debian-fixup.service` for details.
...
[FAILED] Failed to start Update UTMP about System Boot/Shutdown.
See `systemctl status systemd-update-utmp.service` for details.
[DEPEND] Dependency failed for Update UTMP about System Runlevel Changes.
以下は、自分で作成した手順/実行した手順です。
cd ~
mkdir debootstrap
cd debootstrap/
# get newest
wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.80_all.deb
ar -x debootstrap_1.0.80_all.deb
zcat /root/debootstrap/data.tar.gz | tar xv
apt-get install parted
# 1.5Gbytes
dd if=/dev/zero of=1445.img bs=1024 count=1 seek=1536k
parted -s 1445.img -- mklabel msdos mkpart primary 1m 1.5g toggle 1 boot
losetup --show -f 1445.img
# prints out `/dev/loopX`, enter this on the next lin
partprobe /dev/loop0
# only have to make the filesytem once --> if you are troubleshooting steps, do not redo this line
mkfs -t ext2 /dev/loop0p1
mount /dev/loop0p1 /mnt
debootstrap --verbose --components=main,contrib,non-free \
--include=firmware-realtek,linux-image-amd64,grub-pc,ssh,vim \
--exclude=nano \
--arch amd64 jessie /mnt http://ftp.us.debian.org/debian
カーネルがインストールされていることを確認してください。カーネルは
/boot
chroot内に 表示されるはずです。つまり、次のファイルが含ま/mnt/boot
れています。initrd.img-3.16.0-4-amd64
vmlinuz-3.16.0-4-amd64
config-3.16.0-4-amd64
System.map-3.16.0-4-amd64
GRUBをインストールする
grub-install --boot-directory=/mnt/boot --modules=part_msdos /dev/loop0
APTをセットアップする
aptソースをコピー
cp /etc/apt/sources.list /mnt/etc/apt/sources.list
cdromソースがコメント化されていることを確認します
次の行を追加します。
deb http://ftp.debian.org/debian stable-backports main contrib non-free
chrootをセットアップする
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /dev /mnt/dev
# if you want your pushprofilesettings
cp ~/.bashrc /mnt/root/
cp ~/.vimrc /mnt/root/
# chroot -- enter the system as if it were thy own
chroot /mnt /bin/bash
export HOME=/root
export LC_ALL=C
export LANG=C.UTF-8
export TERM=xterm-256color
mount
from man mount:
--bind
サブツリーを別の場所に再マウントします(その内容は両方の場所で利用可能です)。これ
-t <type>
により、ファイルシステムタイプのマウントは、mount
自動決定を試みます
シリアル/コンソールアクセスのセットアップ
編集/etc/default/grub
:
に設定
GRUB_CMDLINE_LINUX=""
:GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
コメント解除
GRUB_TERMINAL=console
その下に、次の行を追加します。
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
grub構成を作成します- これ は 非systemd-nspawn
シェルで実行する 必要があります(つまりchroot
)
grub-mkconfig -o /boot/grub/grub.cfg
chrootを終了します
exit
chroot'edのクリーンアップ
umount /mnt/sys
umount /mnt/dev
umount /mnt/dev/pts
umount /mnt/proc
で追加のマウントを確認できます: mount | grep /mnt
そして、それらをアンマウントします umount
systemd-nspawnを入力します
systemd-nspawn -D /mnt
# not you are in a special container
以下のためのパスワードを設定root
してpasswd
で/etc/ssh/sshd_config
アウトコメントPermitRootLogin without-password
読みする#PermitRootLogin without-password
と挿入しPermitRootLogin yes
、その下に
起動時にsshを有効にする
systemctl enable ssh
掃除
# this is needed to clean up both chroot and systemd-nspawn -D /mnt
# once this is run you can not do systemd-nspawn either so wait until you are entirely done
exit
umount /mnt
losetup -d /dev/loop0
追加のマウントを確認します: ANYTHING が返されたmount | grep /mnt
場合 、それらをアンマウントします umount
回復(エラーの場合のみ必要)
何かを壊した場合、または再試行する必要がある場合は、既存のRE-MOUNT / SETUP CHROOTを再インストールし .img
ます。
losetup --show -f 1445.img
# prints out `/dev/loopX`, enter this on the next lin
partprobe /dev/loop0
mount /dev/loop0p1 /mnt
テストimg
qemu-system-x86_64 -hda 1445.img -m 1024 -vnc :0
sudo debootstrap --components=main,contrib,nonfree --variant=minbase --include=linux-generic,grub-pc --arch=i386 xenial /mnt
でした。