One Hat Cyber Team
Your IP :
216.73.216.115
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
backup
/
oldserver
/
2
/
sbin
/
View File Name :
mkbootdisk
#!/bin/bash # mkbootdisk # # Written by Erik Troan <ewt@redhat.com> # # Copyright 1998-2010 Red Hat, Inc. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # pause=yes unset kernel device=/dev/fd0 unset verbose unset kernelargs unset mountopts unset isoimage unset realdev size=1440 failed=0 MOUNTDIR=`mktemp -d /tmp/mkbootdisk.XXXXXX` PATH=/sbin:$PATH export PATH VERSION=1.5.5 usage () { cat >&2 <<EOF usage: `basename $0` [--version] [--noprompt] [--device <devicefile>] [--verbose -v] [--iso] [--kernelargs <args>] [--size <size>] <kernel> (ex: `basename $0` --device /dev/fd1 2.0.31) EOF exit $1 } while [ $# -gt 0 ]; do case $1 in --device) shift device=$1 ;; --kernelargs) shift kernelargs=$1 ;; --help) rm -rf $MOUNTDIR usage 0 ;; --iso) isoimage=1 ;; --size) shift size=$1 ;; --noprompt) unset pause ;; -v) verbose=true ;; --verbose) verbose=true ;; --version) echo "mkbootdisk: version $VERSION" rm -rf $MOUNTDIR exit 0 ;; *) if [ -z "$kernel" ]; then kernel=$1 else rm -rf $MOUNTDIR usage fi ;; esac shift done [ -z "$kernel" ] && { rm -rf $MOUNTDIR usage 1 } [ "$(uname -i)" == "x86_64" ] && [ -z $isoimage ] && { echo "Image for x86_64 architecture does not fit on 1.44MB floppy." >&2 echo "Use \"--iso --device image.iso\" options to make a CD image." >&2 exit 1 } [ -d /lib/modules/$kernel ] || { echo "/lib/modules/$kernel is not a directory." >&2 rm -rf $MOUNTDIR exit 1 } [ -f /boot/vmlinuz-$kernel ] || { echo "/boot/vmlinuz-$kernel does not exist." >&2 rm -rf $MOUNTDIR exit 1 } rootdev=`awk '$1 ~ /^[^#]/ && $2 == "/" { print $1 ; exit }' /etc/fstab` case $rootdev in #( LABEL=* ) rootlabel=$(expr $rootdev : 'LABEL=\(.*\)') # whee, now we have to look through every partition looking for # the thing called $rootlabel, which could be raid. Ick. # md partitions first list=$(awk 'NR>=3 {i=($4~/^md/); a[i]=a[i]" "$4} END{print a[1] a[0]}' \ /proc/partitions) rootdev="" for dev in $list; do if tune2fs -l /dev/$dev >/dev/null 2>/dev/null; then label=$(tune2fs -l /dev/$dev 2>/dev/null | awk '/Filesystem volume name/ {print $4}') if [ "$label" = $rootlabel ]; then rootdev=/dev/$dev break fi fi done ;; esac if [ -z "$kernelargs" -a -x /sbin/grubby -a -f /boot/grub/grub.conf ]; then # sed gross... this grep's for the args= line and removes the args=" and "$ defkernel=$(grubby --default-kernel) if [ -n "$defkernel" ]; then kernelargs=$(grubby --info "$defkernel" | sed -n 's/"$//;s/^args="//p') fi fi [ -z "$rootdev" ] && { echo 'Cannot find root partition in /etc/fstab.' >&2 rm -rf $MOUNTDIR exit 1 } rm -rf $MOUNTDIR mkdir $MOUNTDIR || { echo "Failed to create $MOUNTDIR" >&2 exit 1 } [ -d $MOUNTDIR ] || { echo "$MOUNTDIR is not a directory!" >&2 rm -rf $MOUNTDIR exit 1 } if [ -n "$isoimage" ]; then cfgfile=$MOUNTDIR/isolinux/isolinux.cfg bootmsg=$MOUNTDIR/isolinux/boot.msg # create an iso image; the directory is all we need [ -n "$verbose" ] && echo -n "Installing isolinux... " mkdir $MOUNTDIR/isolinux cp /usr/share/syslinux/isolinux.bin $MOUNTDIR/isolinux [ -n "$verbose" ] && echo done else cfgfile=$MOUNTDIR/syslinux.cfg bootmsg=$MOUNTDIR/boot.msg # we need to create an msdos filesystem for syslinux if [ -b "$device" ]; then if [ -n "$pause" ]; then echo "Insert a disk in $device. Any information on the disk will be lost." echo -n "Press <Enter> to continue or ^C to abort: " read aline fi # this is copying some bits from below. oh well realdev=$device device=`/bin/mktemp /tmp/mkbootdisk.XXXXXX` dd if=/dev/zero of=$device bs=1024 count=$size 2> /dev/null mountopts=loop elif [ -f "$device" ]; then echo "$device exists but is not a block device." rmdir $MOUNTDIR exit 1 else dd if=/dev/zero of=$device bs=1024 count=$size 2> /dev/null mountopts=loop fi [ -n "$verbose" ] && echo -n "Formatting $device... " mkdosfs -r 16 -I $device > /dev/null || { echo "Failed to format $device" >&2 rmdir $MOUNTDIR [ -n "$realdev" ] && rm -f "$device" exit 1 } syslinux $device [ -n "$verbose" ] && echo "done." mount -o "$mountopts" -t vfat $device $MOUNTDIR || { rmdir $MOUNTDIR [ -n "$realdev" ] && rm -f "$device" exit 1 } fi if [ -n "$isoimage" ]; then BOOTDESTDIR=$MOUNTDIR/isolinux else BOOTDESTDIR=$MOUNTDIR fi [ -n "$verbose" ] && echo -n "Copying /boot/vmlinuz-$kernel... " cp -p /boot/vmlinuz-$kernel $BOOTDESTDIR/vmlinuz || failed=1 [ -n "$verbose" ] && echo "done." # "initramfs.img" would not fit into the 8.3 scheme... for f in /boot/initr{amfs,d}-$kernel.img; do [ -f $f ] || continue [ -n "$verbose" ] && echo -n "Copying $f... " cp -p $f $BOOTDESTDIR/initrd.img || failed=1 [ -n "$verbose" ] && echo "done." break done [ -n "$verbose" ] && echo -n "Configuring bootloader... " [ -f $BOOTDESTDIR/initrd.img ] && INITRDARG="initrd=initrd.img" if [ $(echo $rootdev | cut -b 6-9) = "loop" ]; then rootdev=$(ls -l $rootdev | awk '{ printf("%02x%02x\n", $5, $6); }') fi cat > $cfgfile <<EOF || failed=1 default linux prompt 1 display boot.msg timeout 100 label linux kernel vmlinuz append $INITRDARG $kernelargs root=$rootdev EOF chmod 644 $cfgfile title="" [ -f /etc/redhat-release ] && title="$(sed 's/ release.*$//' /etc/redhat-release)" if [ -z "$title" -o $(echo -n "$title Boot CD" | wc -c) -ge 33 ]; then title="Red Hat Linux" fi cat >> $bootmsg <<EOF || failed=1 Press <return> (or wait 10 seconds) to boot your $title system from $rootdev. You may override the default linux kernel parameters by typing "linux <params>", followed by <return> if you like. EOF [ -n "$verbose" ] && echo "done." if [ -n "$isoimage" ]; then mkisofs \ -A "$title Boot CD" \ -V "$title Boot CD" \ -J -R -T -quiet \ -o $device \ -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table $MOUNTDIR rm -rf $MOUNTDIR else umount $MOUNTDIR rmdir $MOUNTDIR fi if [ -n "$realdev" ] && [ $failed -eq 0 ]; then dd if="$device" of="$realdev" bs=72k rm -f "$device" fi if [ $failed -eq 1 ]; then exit 1 else exit 0 fi