linux内核启动修复

首先看一下linux内核重要文件grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0 #如果有多个菜单,默认选择的菜单为0
timeout=5 #菜单选项栏等待5s
splashimage=(hd0,0)/grub/splash.xpm.gz #/dev/sda1即/boot下开机启动图片
hiddenmenu #影藏菜单
title CentOS 6 (2.6.32-696.el6.x86_64) #标题为CentOS 6 (2.6.32-696.el6.x86_64),此标题不能没有
root (hd0,0) #第一块磁盘,第1个分区,指的是/boot
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet # kernel相对于/boot的路径,此处根值/boot,kenrl后面跟有系统启动相关参数 rhgb 图形化工具(转圈圈),删除rhgb直接到正常启动界面 quiet默认隐藏内核的启动过程
initrd /initramfs-2.6.32-696.el6.x86_64.img title CentOS 6 (2.6.32-696.el6.x86_64) #标题为CentOS 6 (2.6.32-696.el6.x86_64),此标题不能没有
kernel (hd0,0)/vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet # 没有定义根,后面不能调用只能在前面添加(hd0,0)
initrd (hd0,0)/initramfs-2.6.32-696.el6.x86_64.img

  

 

一 删除/boot/grub/*下所有文件,只保留grub.conf配置文件,系统能否正常启动修复?

系统能够正常启动
stage2阶段就是一个grub.conf配置文件,其它文件都不起到直接的作用        
此时重新启动系统只会在一开始报一个没有启动图片的错误,此错误不影响系统的正常启动(可忽略),/boot/grub下的所有文件只做暂时备份使用即stage1 stage1_5阶段的备份文件,只有当1和1.5阶段出现故障的时候 可以通过一些命令进行修复,修复的时候会用到此处的备份文件
 

二 破坏MBR的前446字节的信息,修复(stage1阶段修复)

[root@Centos6 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=4426
破坏stage1阶段
此时发现系统重启进入光盘界面
重启系统直接进入光盘界面,也就是光盘上的MBR没有启动代码
选择第三项进入救援模式
 
修复步骤
1.切根  chroot /mnt/sysiamge
此时所处的位置并不是磁盘上的根,真正的根位于/mnt/sysimage下
起因:在救援模式自身是不提供grub-install的只有切根才可以
 
2.grub-install  /dev/sda  
修复grub,此过程stage[1,1.5,2]都可以修复
此时出现分区别标签的错误,不用管,此步骤容易出现故障
3.sync
同步设置到磁盘,确保磁盘已经写入进去了
此时不仅修复了mbr还修复了grub里面不同stage的文件
4.退出shell,重新启动
总结:此时stage1阶段的恢复完成,主要通过grub-install进行恢复
-------------------------------补充关闭selinux---------------------------
1、重启系统按c键,直接进入grub
grub> kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/sda2 selinux=0
grub> initrd /initramfs-2.6.32-696.el6.x86_64.img
grub> boot
2、通过修改/etc/sysconfig/selinux     把selinux=disabled

-----------------------------------------------------------------------------------

 

三 破坏512字节之后的内容进行修复(stage1.5阶段过程)

dd if=/dev/zero of=/dev/sda bs=1 count=10240 seek=512

此时会发现菜单都看不到

stage1.5出故障使用光盘引导
修复步骤:
1.按Esc键进入光盘引导界面
2.选择第三项进入救援模式
3.切根  chroot /mnt/sysimage
4.grub-install或者使用grub命令
sh-4.1# grub
 
grub>root (hd0,0)     #表示boot在第一块磁盘第1个分区
 
setup (hd0)      #此步骤依赖于/boot/grub/*下面的文件
 
--------------------------------------------------------------------------------------------------------
表示把grub按在哪个硬盘上,没有写分区的原因在于有一部分是装在MBR里面的即boot分区里面,boot里面有一个目录名为grub,告诉各个路径在什么地方
-------------------------------------------------------------------------------------------------------------
5.sync   #设置同步到磁盘
6.reboot  #退出shell,重启系统方可恢复
 

四 在“三”的基础上在重新做“一”的操作,再启动会出现报错,状态码为Error 15

 
修复方案:
如把stage2文件复制到/boot/grup目录下,系统可以重新启动
解释
重启系统,此时可以知道重新安装grub以后stage2并不是起备份作用了,“一”中之所以成功是通过磁盘上别的空间来读取数据,可以明白stage1.5阶段已经成功了
注:如果后期没有更改时间,grub.conf文件时间就是安装操作系统的时间
在grub.conf文件下kernel没有写/boot分区是因为boot是一个独立分区,此文件是相对于boot分区,/=/boot
如果没有指定root的位置必须指定kernel,initrd的位置及在前面加上(hd0,0),即为/boot
 

五  如果没有root(hd0,0)且kernel,initrd不指定/boot的位置会出现如下报错

title CentOS 6 (2.6.32-696.el6.x86_64)     #标题为CentOS 6 (2.6.32-696.el6.x86_64),此标题不能没有
kernel vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet # 没有定义根,后面不能调用只能在前面添加(hd0,0)
initrd initramfs-2.6.32-696.el6.x86_64.img
 
#此时只能进入救援模式切根修改文件
title CentOS 6 (2.6.32-696.el6.x86_64) #标题为CentOS 6 (2.6.32-696.el6.x86_64),此标题不能没有
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet # 没有定义根,后面不能调用只能在前面添加(hd0,0)
initrd /initramfs-2.6.32-696.el6.x86_64.img

  

 

六 如果在默认文件中去掉root (hd0,0)一行系统启动会出现的情况

title CentOS 6 (2.6.32-696.el6.x86_64)
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-696.el6.x86_64.img
 
开头出现下面的提示,但是系统能够正常的启动
 
 

七 调换kernel和initrd调换顺序,开机启动情况?

title CentOS 6 (2.6.32-696.el6.x86_64)
initrd /initramfs-2.6.32-696.el6.x86_64.img
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

  

 
解释:直接报错,大概意思是linux kernel必须在initrd之前加载,否则系统无法启动
只有加载kernel才会知道操作系统的根,找到根了才会找到内存用户驱动
 
修复步骤
修复方法,显示删除initrd添加一新行,在编辑新行grub> initrd /initramfs-2.6.32-696.el6.x86_64.img
 
 

八 单用户模式下可以轻易破解口令,如何明文加密口令?

加上密码口令并不影响启动,只是不能菜单编辑
在title的上一行加上passwd   密码     此时验证的时候不知道都不会成功
password zangfans
 
 
验证会出现Failed
 
修复方案
在hidddenmenu上方和initrd下方各插入一行
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
password centos6 #编辑菜单项输入密码
hiddenmenu
title CentOS 6 (2.6.32-696.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-696.el6.x86_64.img title CentOS 6 (2.6.32-696.el6.x86_64)
kernel (hd0,0)/vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSF ONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet #
initrd (hd0,0)/initramfs-2.6.32-696.el6.x86_64.img
password centos6 #启动输入密码
 
 
 
 

九 如何通过密文设置加密口令

使用加密算法对口令进行加密,可以使用MD5.SHA512
明文加密
1、使用grub-md5-crypt设置密码
[root@Centos6 ~]# grub-md5-crypt
Password:
Retype password:
$1$Z.gAn/$Xd647hXfPj/sJ.i8A0By8.
 
进入/boot/grub/grub.conf文件使用vim编译器的功能
输入密码和验证,即可生成一段md5加密的字符串
password --md5 $1$V1hAn/$hSLRXWfIZWwVtYz4th5rg1 
 
 
密文加密
2、使用grub-crypt及sha512进行加密
[root@Centos6 ~]# grub-crypt
Password:
Retype password:
$6$jkKAT.eUrv3d4bfM$f41lkKlqQk3fAPqNwgy93J6Wi6bVF.zB5b.24V1QPwAGXkVVmwk2MGdi1UxzStHBaPWarW20AppaOvwheNRRj.
 
修改/boot/grub/grub.conf文件
password --encrypted $6$ndPVD/LnVhjBwHaG$XlSiTmJfRJrWufrmH0tLzle/zlmCB.Zyi/WClkcL8G43NDpXlKuQPvsw4AiIJqT1fJrb2Kh8DgZLY68pIAKFI0

十 如果忘记root账号口令,如何修复?

修复方案:
可以通过救援模式删除口令
 
删除口令之后进入系统直接输入root用户无需密码验证就可以登录
 

十一 设置grub背景图片

图片像素和格式是有要求的
使用convert工具对图片像素进行设置
首先得安装convert命令所提供的包
[root@Centos6 ~]# which convert
/usr/bin/convert
[root@Centos6 ~]# rpm -qf `which convert`
ImageMagick-6.7.2.7-6.el6.x86_64
[root@Centos6 ~]# convert -resize 640x480 -colors 14 zf.jpg zf.xpm #此命令必须在zf.jpg位置使用,使用less zf.xpm可以在头部看到相关信息
[root@Centos6 ~]# cp zf.xpm /boot/grub
[root@Centos6 grub]# vim grub.conf
splashimage=(hd0,0)/grub/zf.xpm
 
进入grub界面就能看到设置的背景图片
查看内核启动参数内核参数
[root@Centos6 ~]# cat /proc/cmdline
ro root=UUID=9ca5bdac-ce61-410e-a9fb-19a7877163cc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
 

十二 删除grub.conf文件,启动修复

环境:/boot/grub 目录下只有stage2文件,删除原有的grub.conf文件
重启系统进入如下界面
解释:stage1、stage1.5没有问题主要stage2有问题,连菜单都进不去,直接跳到grub
修复方案:
grub支持交互式输入,如果没有grub.conf文件可以手动输入
 

十三 删除/boot/grub整个目录,如何修复?

[root@Centos6 ~]# rm -rf /boot/grub
 
重启进入如下界面
 
修复方案:
1、进入救援模式
2、chroot /mnt/sysimage 切根
3、使用grub-install /dev/sda
4、sync同步磁盘,此时grub目录已经修复好了
5、写一个grub.conf文件
因为修复时并没有grub.conf文件必须手写
#必须写三项分别是title kernel initrd
default 0
timeout 3
title Centos6
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/sda2 #方便的小技巧,防止手敲出错
initrd /initramfs-2.6.32-696.el6.x86_64.img  
 
使用UUID也是可以的
注:r!blkid|grep /dev/sda2   #UUID后面注意去掉引号
 

十四 删除/boot下所有文件如何修复?  

环境:
[root@Centos6 ~]# ls /boot
config-2.6.32-696.el6.x86_64 initramfs-2.6.32-696.el6.x86_64.img System.map-2.6.32-696.el6.x86_64
efi lost+found vmlinuz-2.6.32-696.el6.x86_64
grub symvers-2.6.32-696.el6.x86_64.gz
[root@Centos6 ~]# rm -rf /boot
rm: cannot remove `/boot': Device or resource busy
[root@Centos6 ~]# ls /boot
[root@Centos6 ~]#
修复分析:
主要修复/boot里面的内核,虚拟文件系统,grub。内核:可以在光盘里面找或者去其它相同系统的机子上拷一份
修复方案:
1、进入救援模式
2、chroot /mnt/sysimage  切根
3、挂载光盘    mount /dev/sr0  /mnt
4、cd /mnt/selinux/
vmlinuz  大小和刚开始文件系统大小是一样的,说明内核是一个固定不变的东西
5、cp vmlinuz /boot  复制内核到/boot下
6、mkinitrd /boot/initramfs.img `uname -r`
7、grub-install /dev/sda
8、在/boot/grub目录下新建一个grub.conf文件
default o
timeout 3
title Centos6
kernel  /vmlinuz ro root=/dev/sda2
initrd    /initramfs.img
9、重启恢复正常
 

十五 误删除/sbin/init,无法进入系统如何修复?

[root@Centos6 ~]# mv /sbin/init ~/
 
 
恢复方案;
1、进入grub
2、按a键在后面添加 init=/bin/bash  #指定不用系统默认的init,使用/bin/bash来代替
用bash来作为计算机的第一个进程,bash内置了一些内部命令
4、回车之后进入如下界面,可以输入一些命令
 
5、查看/sbin/bash命令来自哪个包
bash-4.1# rpm -qf /sbin/init
#upstart包提供
 
此时挂载是只读挂载,不能安装此包
 
6、重新挂载根,默认只读挂载
bash-4.1# mount -o remount,rw /
 
 
7、安装upstart包
注意此时光盘已经挂载,安装包要覆盖安装,--force选项,upstart包毕竟已经安装过了
#默认光盘已经挂载在/mnt
bash-4.1# cd /mnt
bash-4.1# rpm -ivh /Packages/upstart-xxxxxx --force
 
 
8、同步到磁盘
bash-4.1# sync
 
 
9、检查一下可以看到/sbin/bin
总结:/sbin/bin文件误删除后,不需要进入救援模式就可以直接通过命令进行修复,过程中发现根是只读挂载的,必须重新挂载才能安装upstart包
 

十六 根文件系统放在逻辑卷上,若误操作删除/fstab,/boot/*文件该如何恢复?

[root@Centos6-LVM ~]# mv /etc/fstab /root
[root@Centos6-LVM ~]# rm -rf /boot/*
 
此时boot里面的内核文件已经删除了,所以不能通过手写恢复,只有通过救援模式
重启直接进入grub
修复分析:boot分区是不能放在逻辑卷上的,那么有多快逻辑卷如何区分哪块逻辑卷是根?
恢复方案:
1、进入救援模式
2、创建一个临时目录   mkdir /mnt/tmp
3、激活逻辑卷  vgchage -ay    #当前逻辑卷状态处于非活动状态,必须激活才可以
 
4、根据我的机器我从里面文件的结构和大小了解到,Vo100,Vo101app,Vo102分别为root、app、swap
5、挂载/dev/vg_centos6lvm/LogVo100到/mnt/tmp
mount /dev/vg_centos6lvm/LogVo100 /mnt/tmp
6、新建fstab文件
touch /mnt/tmp/etc/fstab
7、对fstab文件添加挂载信息
vi /mnt/tmp/etc/fstab
8、重启系统,挂载一下分区,然后进入救援模式
9、切根 chroot /mnt/sysimage
到此步不能用第十四题思路对grub解题
10、重新安装内核
rpm -ivh /mnt/Packege/kernel-xxxxx.rpm --force
这里不同于“十四”,重新安装内核,“十四”是通过复制光盘的文件到/boot,重写grub.conf进行恢复
11、重写grub.conf文件
#必须写三项分别是title kernel initrd
default 0
timeout 3
title Centos6_lvm
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/vg_centos6lvm/LogVo100 selinux=0
initrd /initramfs-2.6.32-696.el6.x86_64.img
12、重启系统,恢复正常
 

十七 误删除/etc/fstab文件和/boot下的所有文件如何修复?

[root@Centos6 ~]# rm -rf /etc/fstab
[root@Centos6 ~]# rm -rf /boot
 
重启后进入如下界面
修复分析:进入救援模式怎么区分/boot,/,/swap?可以通过挂载分区,进入挂载目录里面,查看内容,以区分区挂载目录
 
bash-4.1# mkdir /mnt/tmp   #创建
bash-4.1# mount /sda1 /mnt/tmp #挂载到临时文件
bash-4.1# ls /mnt/tmp #查看里面的内容,此处可以看到没有任何文件可以判断为/boot
通过以上方法就可以知道每个分区到底是什么
 
恢复方案:
1、进入救援模式
2、chroot /mnt/sysimage   #切根
3、mkdir /mnt/tmp
4、mount /dev/sda2 /mnt/tmp
5、touch /mnt/tmp/etc/fstab   #创建删除的文件
6、vi /mnt/tmp/etc/fstab  
/dev/sda1 /boot  ext4   defaults 0 0
/dev/sda2 /         ext4   defaults 0 0
/dev/sda5 swap  swap  defaults 0 0
错误一:扩展内存加上了/
错误二:文件系统类型为ext4
注:此处是一个大坑,稍有出错会导致在救援系统里面无法挂载光盘
7、重启系统进入救援模式
8、切根挂载光盘
chroot /mnt/sysimage/
mount /dev/cdrom /mnt
9、重新安装内核
rpm -ivh /mnt/Packege/kernel-xxxxx.rpm --force
这里不同于“十四”,重新安装内核,“十四”是通过复制光盘的文件到/boot,重写grub.conf进行恢复
10、此时/boot会生成一些新文件  (看教程使用在强制安装kernel后在做grub-instlal /dev/sda,通过我的操作过程我了解在重新安装内核会自动生成grub目录里面的内容)
11、新建grub.conf文件
#必须写三项分别是title kernel initrd
default 0
timeout 3
title Centos6
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/sda2
initrd /initramfs-2.6.32-696.el6.x86_64.img
 

12、重启系统,恢复正常

linux系统无法正常启动,故障排查恢复的更多相关文章

  1. 在 Linux 系统下使用 PhotoRec 工具来恢复已删除或丢失的文件

    PhotoRec – Recover Deleted or Lost Files in Linux 在 Linux 系统下使用 PhotoRec 工具来恢复已删除或丢失的文件 当你在系统中有意或无意地 ...

  2. Linux系统入门---开机启动流程

    目录 Linux系统入门---开机启动流程 一.centos6 二.systemd管理进程 1.查看级别 三.centos7实践案例: 1.案例1:centos7系统,单用户修改root密码 案例2: ...

  3. 不同linux系统添加开机启动程序的命令

    see http://phpcj.org/blog/%E4%B8%8D%E5%90%8Clinux%E7%B3%BB%E7%BB%9F%E6%B7%BB%E5%8A%A0%E5%BC%80%E6%9C ...

  4. Linux系统xinetd服务启动不了

    Linux系统xinetd服务启动不了 xinetd服务时发现xinetd服务启动不了,并出现错误提示xinetd:unrecognized service,当出现这个错误提示的时候说明系统未安装xi ...

  5. Linux系统的快速启动机制(内核切换) 【转】

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4187846 原文地址:Linux系统的 ...

  6. Linux系统下,启动Tomcat有时报Address already in use

    一.Linux系统下,启动Tomcat有时报Address already in use<null>... 1.那是因为你的tomcat已经启动了tomcat自带的关闭脚本,有时候关闭看上 ...

  7. Linux系统的开机启动顺序

    Linux系统的开机启动顺序加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init一句inittab文件来设定系统运行的等级(一般3或者5,3是多用 ...

  8. Linux启动故障排查和修复技巧

    一个执着于技术的公众号 我发现Linux系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应对单用户模式.GRUB命令操作.Linux救援模式的故障修复案例帮助大家了解此类问题的解 ...

  9. Linux系统之TroubleShooting(故障排除)(转)

    尽管Linux系统非常强大,稳定,但是我们在使用过程当中,如果人为操作不当,仍然会影响系统,甚至可能使得系统无法开机,无法运行服务等等各种问题.那么这篇博文就总结一下一些常见的故障排除方法,但是不可能 ...

随机推荐

  1. Netty的并发编程实践3:CAS指令和原子类

    互斥同步最主要的问题就是进行线程阻塞和唤醒所带来的性能的额外损耗,因此这种同步被称为阻塞同步,它属于一种悲观的并发策略,我们称之为悲观锁.随着硬件和操作系统指令集的发展和优化,产生了非阻塞同步,被称为 ...

  2. java.util.zip.ZipException:ZIP file must have at least one entry

    1.错误描述 java.util.zip.ZipException:ZIP file must have at least one entry 2.错误原因 由于在导出文件时,要将导出的文件压缩到压缩 ...

  3. 芝麻HTTP:Python爬虫入门之URLError异常处理

    1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的服务器 服务器不存在 在代码中,我们需要用try-except语句来包围并捕获相应的异常.下 ...

  4. 自己写的,然后配合zepto+iscroll的上拉加载

    /** * Created by jl on 2016/3/28. *///初始化绑定iScroll控件var actHtml="";var myScroll,    pullUp ...

  5. Mybatis【逆向工程,缓存,代理】知识要点

    前言 本文主要讲解Mybatis的以下知识点: Mybatis缓存 一级缓存 二级缓存 与Ehcache整合 Mapper代理 使用Mapper代理就不用写实现类了 逆向工程 自动生成代码 Mybat ...

  6. Vue-小demo、小效果 合集(更新中...)

    (腾讯课堂学习小demo:https://ke.qq.com/course/256052) 一.简单的指令应用 --打击灭火器 图片素材点击腾讯课堂的链接获取       html: <!DOC ...

  7. js 实现table每列可左右拖动改变列宽度 【转载】

    <!DOCTYPE HTML> <html> <head> <meta charset="gbk"> <title>ta ...

  8. linux的基本操作命令

    linux的基本命令操作: 1.什么是Linux  是一个OS,是Unix克隆版2.命令的基本格式:  命令  [选项]...  [参数]...        //格式  ls             ...

  9. handsontable 方法汇总

    核心方法 1.为handsontable添加钩子方法 addHook(key,callback):key为钩子方法名 例如:hot.addHook('beforeInit', myCallback); ...

  10. Java NIO FileVisitor 高效删除文件

    在公司项目中,由于做个二维码扫码平台项目,预计每天产生的二维码图片达到十几G,所以要做个定时清理任务来定时清理图片,根据不同场景保留图片,规则是:1.二维码统一登录图片几个小时有效   2.电子名片二 ...