mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
108 lines
2.6 KiB
Bash
Executable File
108 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
echo Starting /init script ...
|
|
|
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
export PATH
|
|
|
|
mount -t proc /proc /proc
|
|
mount -t sysfs /sys /sys
|
|
|
|
if [ -x /etc/init.d/udev ]; then
|
|
if type service >/dev/null 2>&1; then
|
|
service udev start
|
|
else
|
|
/etc/init.d/udev start
|
|
fi
|
|
elif [ -x /sbin/start_udev ] && /sbin/start_udev; then
|
|
:
|
|
elif [ -x /sbin/udevd ]; then
|
|
echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
|
|
/sbin/udevd --daemon
|
|
/sbin/udevadm trigger
|
|
/sbin/udevadm settle --timeout=10
|
|
else
|
|
echo No udev, creating /dev manually
|
|
mount -t tmpfs none /dev
|
|
mkdir /dev/pts /dev/shm /dev/mapper
|
|
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
|
|
# Must do each MAKEDEV individually, because if one device fails,
|
|
# MAKEDEV will quit without creating the rest (RHBZ#507374).
|
|
for dev in mem null port zero core full ram tty console fd \
|
|
hda hdb hdc hdd sda sdb sdc sdd loop sd; do
|
|
MAKEDEV $dev ||:
|
|
done
|
|
mknod /dev/ptmx c 5 2; chmod 0666 /dev/ptmx
|
|
mknod /dev/random c 1 8; chmod 0666 /dev/random
|
|
mknod /dev/urandom c 1 9; chmod 0444 /dev/urandom
|
|
ln -sf /proc/self/fd/0 /dev/stdin
|
|
ln -sf /proc/self/fd/1 /dev/stdout
|
|
ln -sf /proc/self/fd/2 /dev/stderr
|
|
|
|
modprobe virtio_pci
|
|
modprobe virtio_net
|
|
fi
|
|
|
|
if grep -sq selinux=1 /proc/cmdline; then
|
|
mount -t selinuxfs none /selinux
|
|
fi
|
|
|
|
# Update the system clock.
|
|
hwclock -u -s
|
|
|
|
# Set up the network.
|
|
ifconfig lo 127.0.0.1
|
|
ifconfig eth0 10.0.2.10
|
|
route add default gw 10.0.2.2
|
|
|
|
# Scan for LVM.
|
|
modprobe dm_mod ||:
|
|
|
|
lvm vgscan --ignorelockingfailure
|
|
lvm vgchange -ay --ignorelockingfailure
|
|
|
|
# Improve virtio-blk performance (RHBZ#509383).
|
|
for f in /sys/block/vd*/queue/rotational; do echo 1 > $f; done
|
|
|
|
# Keep these to enhance the usefulness of debug output.
|
|
ls -l /dev
|
|
cat /proc/mounts
|
|
lvm pvs
|
|
lvm vgs
|
|
lvm lvs
|
|
ifconfig
|
|
netstat -rn
|
|
lsmod
|
|
#hwclock -r
|
|
date
|
|
#ping -n -v -c 5 10.0.2.2
|
|
#ping -n -v -c 5 10.0.2.4
|
|
|
|
echo -n "uptime: "; cat /proc/uptime
|
|
|
|
if ! grep -sq guestfs_rescue=1 /proc/cmdline; then
|
|
exec guestfsd -f
|
|
fi
|
|
|
|
# Use appliance in rescue mode, also used by the virt-rescue command.
|
|
eval $(grep -Eo 'TERM=[^[:space:]]+' /proc/cmdline)
|
|
PS1='><rescue> '
|
|
export TERM PS1
|
|
echo
|
|
echo "------------------------------------------------------------"
|
|
echo
|
|
echo "Welcome to virt-rescue, the libguestfs rescue shell."
|
|
echo
|
|
echo "Note: The contents of / are the rescue appliance."
|
|
echo "You have to mount the guest's partitions under /sysroot"
|
|
echo "before you can examine them."
|
|
echo
|
|
bash -i
|
|
echo
|
|
echo "virt-rescue: Syncing the disk now before exiting ..."
|
|
echo "(Don't worry if you see a 'Kernel panic' message below)"
|
|
echo
|
|
sync
|
|
sleep 1
|
|
sync
|