मैं पिछले 2 दिनों से एक बूट करने योग्य डेबियन (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
चेरोट के भीतर दिखाई देना चाहिए , जो/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-install --boot-directory=/mnt/boot --modules=part_msdos /dev/loop0
APT सेट करें
उपयुक्त स्रोतों पर कॉपी करें
cp /etc/apt/sources.list /mnt/etc/apt/sources.list
सुनिश्चित करें कि cdrom स्रोत से टिप्पणी की गई है
लाइन जोड़ें:
deb http://ftp.debian.org/debian stable-backports main contrib non-free
एक कैरोट सेट करें
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
से आदमी माउंट :
--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"
ग्रब कॉन्फिगर करें - यह एक गैर- शेल में किया जाना चाहिए (इसका मतलब है कि )systemd-nspawn
chroot
grub-mkconfig -o /boot/grub/grub.cfg
चिरोट से बाहर निकलें
exit
चुरोट के लिए सफाई करें
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
के साथ अतिरिक्त आरोह की जाँच करें: mount | grep /mnt
यदि कुछ भी लौटाया जाता है, तो उन्हें अनमाउंट करें umount
पुनर्प्राप्त (केवल ERROR में आवश्यक)
यदि आपने कुछ तोड़ दिया है, या फिर से प्रयास करने की आवश्यकता है, तो मौजूदा पर 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
।