Linux 第20天: (09月12日) 練習和做業

Linux 第20天: (09月12日) 練習和做業linux

 

 

 

 

 


readlink 連接名     得出真實文件名
losetup -a          查看loop設備
vim

vim /boot/grub/grub.conf
max_loop=100        修改loop設備數
bash

 

password --md5      grub加上密碼
r!grub-md5-crypt    md5設置密碼
grub-md5-crypt
openssl passwd -1 -salt "xxx"
網絡

 

getenforce          查看selinux狀態
cat /proc/cmdline   查看全部生效的內核參數
app

 

 

 

grub菜單背景圖修改ide


cp boot/grub/splash.xpm.gz /root
gzip -d splash.xpm.gz
file splash.xpm
more splash.xpm
yum list ImageMagick
yum -y install ImageMagick
convert -resize 640x480 -colors 14 win.jpb win.xpm
gzip win.xpm
cp win.xpm.gz /boot/grub/
vim /boot/grub/grub.conf
oop


 

 

一、破解root口令,併爲grub設置保護功能ui

 

破解root口令spa


重啓按任意鍵進入grub界面, 按'e'進入編輯, 選第二項, 按'e'繼續編輯
輸入1表明進入單用戶模式, 編輯完按'b'重啓便可重設密碼
ip

 

設置grub全局密碼


第一個title前面加入password 明文密碼 或--md5 MD5密文(grub-md5-crypt)

 

設置grub局部密碼


在相應title後面加入password 明文密碼 或--md5 MD5密文(grub-md5-crypt)

 

 


編寫grub.conf的title項繞過grub設置保護

 

grub菜單選"c"
grub>root (hd0,0)
grub>kernel /vmlinuz-2.6.32-642.e16.x86_64 root=/dev/sda2
grub>initrd /initramfs-2.6.32-642.e16.x86_64.img

 

 


破壞grub.conf文件, 進行修復啓動

 

mv /boot/grub/grub.conf /root  破壞grub.conf文件
重啓
grub>kernel (hd0,0)/vmlinuz-2.6.32-642.e16.x86_64 root=/dev/sda2
grub>initrd (hd0,0)/initramfs-2.6.32-642.e16.x86_64.img
修復以後重啓再寫一遍剛纔的命令

 

 


二、破壞本機grub stage1階段, 然後在救援模式下修復之

 

dd if=/dev/zero of=/dev/sda bs=1 count=446  破壞1階段
重啓
chroot /mnt/sysp_w_picpath/
ls -l /sbin/grub
grub-install /dev/sda
hexdump -C -n 512 -v /dev/sda

 

 


破壞本機grub stage1.5階段, 進行修復

 

dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1 破壞1.5階段
重啓
hexdump -C -n 1024 -v /dev/sda
grub>root (hd0,0)  交互式方式修復, 依賴於/boot/grub/*1_5*文件修復
grub>setup (hd0)
quit

 

 


破壞本機grub stage2階段, 進行修復

 

rm -fr /boot/grub 破壞2階段
重啓
cd /mnt/sysp_w_picpath/
chroot /mnt/sysp_w_picpath/
cd /boot
grub-install /dev/sda
重啓
grub>kernel (hd0,0)/vmlinuz-2.6.32-642.e16.x86_64 root=/dev/sda2
grub>initrd (hd0,0)/initramfs-2.6.32-642.e16.x86_64.img
修復以後重啓再寫一遍剛纔的命令
vim /boot/grub/grub.conf
default=0
timeout=5
title wanglinux
root (hd0,0)
kernel /vmlinuz-2.6.32-642.e16.x86_64 root=/dev/sda2
initrd /initramfs-2.6.32-642.e16.x86_64.img

 

 


破壞/sbin/init, 進行修復

 

mv /sbin/init /root 破壞/sbin/init
file /root/init
重啓
grub append> root=/dev/sda2 init=/sbin/bash
mount -o remount,rw /
mv /root/init /sbin/
重啓

 

 


三、刪除vmlinuz和initramfs文件後沒法啓動, 兩種方法恢復之

 

rm /boot/vmlinuz-2.6.32-642.e16.x86_64 initramfs-2.6.32-642.e16.x86_64.img
重啓
ls /mnt/sysp_w_picpath/boot/
df
mkdir /mnt/cdrom 救援目錄下創建掛載目錄
mount /dev/cdrom /mnt/cdrom
ls
cd isolinux/
ls
cp vmlinuz /mnt/sysp_w_picpath/boot
cd /mnt/sysp_w_picpath/boot
ls
chroot /mnt/sysp_w_picpath/
mkinitrd /boot/initradmfs-`uname -r`.img`uname`

 

經過網絡dhcp啓動

 

chroot /mnt/sysp_w_picpath/
ls
cd /boot
ls
scp x.x.x.x :/boot/vmlinuz-2.6.32-642.e16.x86_64 /boot/initramfs-2.6.32-642.e16.x86_64.img /boot/

 

 


破壞本機grub stage1階段, 刪除/boot目錄的全部文件, 並恢復之

 

dd if=/dev/zero of=/de/sda bs=446 count=1 破壞第1階段
hexdump -n 512 -v /dev/sda
rm -rf /boot/  刪除boot目錄全部文件
umount /boot
重啓
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
rmp -ivh /mnt/cdrom/Packages/kernel-2.6.32-642.e16.x86_64.rpm --root=/mnt/sysp_w_picpath --force|replacepkgs
cd /mnt/sysp_w_picpath/boot
ls
chroot /mnt/sysp_w_picpath/
grub-install /dev/sda
vim grub/grub.conf
default=0
timeout=3
title wanglinux
root (hd0,0)
kernel r!ls /boot/vmlinuz  root=/dev/sda2
initrd r!ls /boot/initramfs

 

 


四、破壞本機grub stage1階段, 刪除/etc/fstab和/boot目錄的全部文件,並恢復之

 

dd if=/dev/zero of=/de/sda bs=446 count=1 破壞第1階段
hexdump -n 512 -v /dev/sda
rm -rf /boot/        刪除boot目錄全部文件
rm -rf /etc/fstab    刪除fstab文件
重啓
df
lsblk 此時已沒法使用lsblk
blkid
fdisk -l
pwd
df
mkdir /mnt/sda1
mkdir /mnt/sda2
mount /dev/sda1 /mnt/sda1
mount /dev/sda2 /mnt/sda2
cd /mnt/sda2
vi /mnt/sda2/etc/fstab
/dev/sda1 /boot ext4 defaults 1 1
/dev/sda2 /     ext4 defaults 1 1
重啓
chroot /mnt/sysp_w_picpath/
mount /dev/cdrom /mnt/
rpm -ivh /mnt/Packages/kernel-2.6.32-642.e16.x86_64.rpm --force
grub-install /dev/sda
vim /boot/grub/grub.conf
default=0
timeout=3
title wanglinux
root (hd0,0)
kernel /vmlinuz-2.6.32-642.e16.x86_64
initrd /initramfs-2.6.32-642.e16.x86_64.img
r!ls /boot/vmlinuz-2.6.32-642.e16.x86_64 /boot/initramfs-2.6.32-642.e16.x86_64.img

 

 


邏輯卷狀況下的修復

 

lvscan
vgs
vgchange -ay    激活vg
ls /dev/vg0/*
pwd
mount /dev/vg0/root /mnt/sysp_w_picpath/
vi /mnt/sysp_w_picpath/etc/fstab
/dev/sda1 /boot ext4 defaults 1 1
/dev/vg0/root / ext4 defaults 1 2
/dev/vg0/usr /usr ext4 defaults 0 0
/dev/vg0/var /var ext4 defaults 0 0
重啓
chroot /mnt/sysp_w_picpath/
df
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-642.e16.x86_64.rpm --force
vim /boot/grub/grub.conf
default=0
timeout=3
title wanglinux
root (hd0,0)
kernel /vmlinuz-2.6.32-642.e16.x86_64 root=/dev/vg0/root
initramfs-2.6.32-642.e16.x86_64.img
r!ls /boot/vmlinuz* /boot/initramfs*.img

 

 


五、增長新硬盤,在其上製做能單獨運行kernel和bash的系統

 

1分區和建文件系統
lsblk
echo '---' > /sys/class/scsi_host/host2/scan
lsblk
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2


2掛載boot
mkdir /mnt/boot
mount /dev/sdb1 /mnt/boot
cd /mnt/boot
cp /boot/vmlinuz-2.6.32-642.e16.x86_64 /boot/initramfs-2.6.32-642.e16.x86_64.img .


3安裝grub
grub-install /dev/sdb --root-directory=/mnt
hexdump -C -n 512 -v /dev/sdb


4創建grub.conf
cd /mnt/boot/grub
vim grub.conf
default=0
timeout=3
title wanglinux
root (hd0,0)
kernel /vmlinuz-2.6.32-642.e16.x86_64 root=/dev/sda2 selinux=0 init=/bin/bash
initrd /initramfs-2.6.32-642.e16.x86_64.img
r!ls /boot/vmlinuz-2.6.32-642.e16.x86_64 /boot/initramfs-2.6.32-642.e16.x86_64.img


5恢復內核和initramfs文件
cp /boot/vmlinuz-2.6.32-642.e16.x86_64 /mnt/boot/
cp /boot/initramfs-2.6.32-642.e16.x86_64.img /mnt/boot


6建立一級目錄
mkdir /mnt/sysroot
mount /dev/sdb2 /mnt/sysroot/
cd /mnt/sysroot
mkdir -pv {bin,etc,sbin,dev,lib,lib64,proc,sys,tmp,root,home,usr,var,mnt,media,boot}


7創建fstab文件
vim /mnt/sysroot/etc/fstab
/dev/sda1 /boot ext4 defaults 1 1
/dev/sda2 /     ext4 defaults 1 2
df


八、複製bash和相關庫文件, 複製相關命令及相關庫文件
/root/copycmd.sh
bash vim cat ls df mount umount rpm reboot hostname halt quit
chroot /mnt/sysroot
pwd
ls

 

 


自制U盤linux系統

 

lsblk
fdisk /dev/sdc
partx -a /dev/sdc
mkfs.ext4 /dev/sdc1
mkfs.ext4 /dev/sdc2
blkid


mount /dev/sdc1 /mnt/boot
mount /dev/sdc2 /mnt/sysroot


cd /mnt/boot
cp /boot/vmlinuz-2.6.32-642.e16.x86_64 /boot/initramfs-2.6.32-642.e16.x86_64.img .


grup-install /dev/sdc --root-directory=/mnt


vim grub.conf
default=0
timeout=3
title wanglinux
root (hd0,0)
kernel /vmlinuz-2.6.32-642.e16.x86_64 root=/dev/sda2 selinux=0 init=/bin/bash
initrd /initramfs-2.6.32-642.e16.x86_64.img
r!ls /boot/vmlinuz-2.6.32-642.e16.x86_64 /boot/initramfs-2.6.32-642.e16.x86_64.img


cd /mnt/sysroot/
ls
mkdir -pv {etc,boot,dev,lib,lib64,sys,proc,home,root,mnt,usr,var,tmp}
/root/copycmd.sh
bash ls tree hostname mount shutdown poweroff cat vi umount quit


vi /etc/fstab
/dev/sda1 /boot ext4 defaults 1 1
/dev/sda2 /     ext4 defaults 1 2

 

 

 

六、編譯安裝kernel,啓用支持ntfs文件系統功能

 

cat /boot/config-2.6.32-642.e16.x86_64|grep -i ntfs
yum grouplist
yum -y groupinstall "Development Tools"
uname -r
lscpu
tar xvf linux-3.18.41.tar.xz -C /usr/src/
cd /usr/src
ls
ln -s linux-3.18.41/ linux
cd linux
ls
du -sh .
cp /boot/config-3.10.0-327.e17.x86_64 /usr/src/linux/.config
cat /usr/src/linux/.config
ll /usr/src/linux/.config
wc -l /usr/src/linux/.config
cd /usr/src/linux
ls
make menuconfig
yum -y install "*curses*"
make menuconfig
lscpu
make -j 4
du -sh /usr/src/linux-3.18.41/
find -name "*.ko" -ls |grep -i ntfs
cd /lib/modules
du -sh /lib/modules
cd /usr/src/linux-3.18.41
make modules_install /lib/modules/3.18.41-1.0-wanglinux
watch -n1 `du -sh /lib/modules/3.18.41-1.0-wanglinux/`
cd /lib/modules
cd /usr/src/linux
make install

 

 

 

 

lsmod |grep xfs

blkid
lsmod |grep ext4
grep -i ext4 /boot/config-2.6.32-642.e16.x86_64
locate ext4.ko
lsmod |grep e1000
rmmod e 1000
modprobe -r e1000
lsmod |grep usb
rmmod usb_storage
lsblk
modprobe usb_storage
lsblk
locate usb_storage.ko
grep -i usb_storage /boot/config-2.6.32-642.e16.x86_64
modinfo -n usb_storage|usb-storage

 

 

 

cat /proc/sys/net/ipv4/ip_forward

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

sysctl -w net.ipv4.ip_forward=1

 

 


sysctl -a |grep icmpnet.ipv4.icmp_echo_ignore_all=1sysctl -p

相關文章
相關標籤/搜索