系统CentOS6.5
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
root密码恢复
重启系统reboot,按住e进入Grub启动菜单选择第二项,按e找到linux那一行,最后添加 single,然后输入数字1或者按回车返回按b重新启动系统 进入系统后passwd修改密码reboot重启
Linux下root密码找回方法转载自http://www.cnblogs.com/dying/archive/2013/12/02/3453795.html
============================================================================
linux的root享有至高无上的权力,一旦root密码忘记或者被盗,是一件非常头痛的事情,那么怎么样才能找回root的密码呢,本人把其总结如下: (一)Linux 系统密码破解
1.在grub选项菜单按e进入编辑模式 2.编辑kernel那行 /init 1 (或/single) 3.按B重启 4.进入后执行下列命令 root@#passwd root (配置root的密码) Enter new unix password:输入新的密码 root@#init 6
============================================================================
(二)debian linux 系统密码破解
1.在grub选项菜单’Debian GNU/Linux,...(recovery mode)’,按e进入编辑模式 2.编辑kernel那行最后面的 ro single 改成 rw single init=/bin/bash,按b执行重启 3.进入后执行下列命令 root@(none)#mount -a root@(none)#passwd root root@(none)#reboot
============================================================================
(三)Freebsd 系统密码破解
1.开机进入引导菜单 2.选择每项(按4)进入单用户模式 3.进入之后输入一列命令 root@#mount -a root@#fsck -y root@#passwd(修改密码命令) root@#root(要破解密码的用户名) Enter new unix password: root@#init 6 (重启)
============================================================================
(四)Solaris 系统密码破解 bitscn.com
1.在grub选项菜中选择solaris failasfe 项 2.系统提示Do you wish to have it mounted read-write on /a ?[y,n,?] 选择y 3.就进入单用户模式 4.输入下列命令 #passwd #New passwd:输入新的密码 #Re-enter New passwd:在次输入新的密码 #init 6 (重启) bitscn.com
============================================================================
(五)NetBsd 系统密码破解
1.开机:当出现提示符号并开始倒数五秒时, 键入以下指令: > boot -s (进入单用户模式命令) 2.在以下的提示符号中 Enter pathname of shell or RETURN for sh: 按下 Enter。 3.键入以下指令: # mount -a # fsck -y 4.使用 passwd 更改 root 的密码。 5.使用 exit 指令进入多人模式。
============================================================================
(六)debian linux系统密码破解
1、在Grub的引导装载程序菜单上,选择你要进入的条目,键入 “e” 来进入编辑模式;
2、在第二行(类似于kernel /vmlinuz-2.6.15 ro root=/dev/hda2 ),键入”e”进入编辑模式;
3、在句末加上”init=/bin/bash”,回车;
4、按“b”启动系统。
这样我们即可获得一个bash的shell,进入shell后,根分区的挂载模式默认是只读,我们要将其改为可写,否则不能更改root密码: mount -no remount,rw / passwd root sync mount -no remount,ro / reboot 这样即可成功更改debian的root用户的密码。
============================================================================
(七)
1.在启动linux的时候按Ctrl+X,在bash#提示符下输入linux single 或 linux 1,然后在 bash# 输入 passwd root 就可以更改密码了! 设置完后#init 6 重启 OK.
也可以在: 2.在启动linux的时候按Ctrl+X,在bash#提示符下输入:vi /etc/passwd,找到root,把里面的root:x:....的“x”删掉。就删除了密码!
============================================================================
(八)
一、关于lilo 1. 在出现 lilo: 提示时键入 linux single 画面显示 lilo: linux single 2. 回车可直接进入linux命令行 3. 用password命令修改密码 二、关于 grub 1. 在出现grub画面时,用上下键选中你平时启动linux的那一项,然后按e键 2. 再次用上下键选中你平时启动linux的那一项(类似于kernel/boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键 3. 修改你现在见到的命令行,加入single,结果如下: kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/ single 4. 回车返回,然后按b键启动,即可直接进入linux命令行 5.用password命令修改密码
============================================================================
(九)
1、把系统安装光盘插入,重启机器,启动时迅速按下Del键,进入CMOS,把启动顺序改为光盘先启动,这样就启动了Linux安装程序,按F5,按提示打入Linuxrescue回车,进入救援模式,接下来是选择语言及键盘,直接回车即可,程序提示已经把硬盘上的Linux系统安装到了/mnt/sysimage下,然后出现了超级用户提示符#。 2、进入到硬盘etc目录下:cd/mnt/sysimage/etc,先做备份防不测: cpshadowshadow.old修改shadow文件的属性为可写:chmod+wshadow然后用vi修改之:找到含root用户信息的那一行:root:....:,前两个冒号之间就是加密的密码,把它删除掉(冒号不能删),存盘退出。这样root的密码就为空了。 不会用vi的用户可以采取如下方法:找一张DOS盘插入软驱,把Shadow拷贝到DOS盘上:mcopyshadowa:/然后在Windows下用附件中的记事本修改之,注意打开文件类型一定要选所有文件(*.*),存盘退出。最后再拷回: mcopya:/shadowmnt/sysimage/etc 3、把Shadow的属性改回只读:chmod-wshadow,最后输入Exit退出,取出光盘。 4、为安全起见,重启后应在终端窗口中再给root加上密。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Linux忘记root密码又忘记grub密码怎么办当我们忘记root密码时,如果GRUB没有设置密码(或者知道GRUB密码时)我们可以用单用户方法来修改密码,当GRUB密码也忘记了,这时我们就得用光盘修改root密码。
将系统光盘放入光驱,设置光驱引导。选择F2进入系统修复,输入命令:linux rescue以下出现的几个选择和安装系统时一样。当出现这个提示的时候应该记住,他提示的命令:chroot /mnt/sysimage下一步就是进入修改密码,我们先行:chroot /mnt/sysimage 不然不能进入可写模式。最后运行命令:passwd重置root密码重启计算机为grub密分为二种,一是明文,二是采用MD5算法的加密。
用grub-md5-crypt成生GRUB的md5密码通过grub-md5-crypt对GRUB的密码进行加密码运算,比如我们想设置grub的密码是123456,所以我们先要用md5进行对123456这个密码进行加密。
1 2 3 4 5 /sbin/grub-md5-crypt Password: 在这里输入123456 Retype password: 再输入一次123456 $1$7uDL20$eSB.XRPG2A2Fv8AeH34nZ0\(1\)7uDL20$eSB.XRPG2A2Fv8AeH34nZ0就是通过grub-md5-crypt进行加密码后产生的值。这个值我们要记下来。
更改 /etc/grub.conf所以我要在/etc/grub.conf中加入password --md5 \(1\)7uDL20$eSB.XRPG2A2Fv8AeH34nZ0 这行,以及lock,应该加到哪呢,请看下面的更改实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 default=1 timeout=10 splashimage=(hd0,7) /boot/grub/splash .xpm.gz password --md5 $1$7uDL20$eSB.XRPG2A2Fv8AeH34nZ0 # 增加密码设置 title Fedora Core (2.4.22-1.2061.nptl) lock # 增加锁定设置 root (hd0,7) kernel /boot/vmlinuz-2 .4.22-1.2061.nptl ro root=LABEL=/ initrd /boot/initrd-2 .4.22-1.2061.nptl.img title WindowsXP rootnoverify (hd0,0) chainloader +1lock的意思就是把Redhat Fedora锁住了。如果启动时会提示错误。这时就应该按P键,然后输入密码就行了。
使用password,lock命令实现几种加密方法如下: 单纯对GRUB界面加密,而不对被引导的系统加密: 在timeout一行下面加一行: password --md5 PASSWORD 对GRUB界面加密,同时对被引导的系统加密: 在timeout一行下面加一行:password --md5 PASSWORD在title一行下面加一行:lock 同时存在多个被引导系统,针对特定的系统实例分别加密(不对GRUB操作界面加密): 在title一行下面加一行:lock在lock一行下面紧贴着再加一行:password ——md5 PASSWORD(注:lock不能单独使用)以下部分内容转载自:http://blog.sina.com.cn/s/blog_553c6d4e0101gboo.html
centos 6下自己编译linux内核,完了创建initrd文件,依据以前的的经验mkinitrd
#mkinitrd -v ../initramfs-3.0.32.img 3.0.32但是输出的消息却与以前的版本不太一样,好像打包进去了很多模块,生成花费时间也很长,完成后,看initramfs文件有100多M,OMG,这么大的文件 /boot目录可放不下(/boot挂在单独的分区下,该分区只有100M大小)。
经过N久的折腾,才发现原来redhat/centos6不再使用原来的mkinitrd,而是使用dracut代替了,mkinitrd实际上只是调用dracut的功能。研究dracut才弄明白,如果只是生成用于grub引导本地硬盘上的linux,需要使用一个参数--hostonly ,这样dracut就不会把过多不必要的模块加载到initramfs.img里,如下
dracut -f -v --hostonly -k '/lib/modules/3.0.32' ../initramfs-3.0.32.img 3.0.32这是通过查阅kernel 编译安装的 make install 使用是执行的以下脚本实现的: sh /path/to/kernel-source/linux-3.0.32/arch/x86/boot/install.sh 3.0.32 arch/x86/boot/bzImage System.map "/boot"
查阅arch/x86/boot/install.sh 文件, 它调用/sbin/installkernel ,然后是/sbin/new-kernel-pkg ,接着是/sbin/dracut
通过分析 /sbin/new-kernel-pkg ,其中290行有如下代码
if [ -n "$dracut" ]; then tool="/sbin/dracut $dracuthostonly -f $initrdfile $version" else tool="/sbin/mkinitrd --allow-missing -f $initrdfile $version" fi 其中变量$dracuthostonly的值是 -H ,在dracut参数里与 --hostonly 同义。 以下内容转载自:http://blog.csdn.net/fickyou/article/details/51331911 问题: 当Linux内核启动时,必须找到并执行第一个用户程序,通常是init。用户程序存放在文件系统,故Linux必须找到并挂载第一个文件系统。 通常,可用的文件系统都列在/etc/fstab,所以mount可以找到它们。但是/etc/fstab本身存在与文件系统中。因此,这类似鸡生蛋蛋生鸡的问题。 为解决该问题,内核开发者建立了内核命令列表选项root=,用来制定root文件系统存在于哪个设备上。 之前root通常位于软盘和硬盘上的分区。如今root文件系统可存在于各种不同类型的硬件中,如flash等等。同时root文件系统也可能被进行各种形式的压缩,加密等等。 如果在内核中加入所有这些特殊案例,可以做到,但是就像用汇编语言写web软件。解决方法
Linux2.6将一个小的ram-based initial root filesystem (initramfs)包进内核,如果这个文件系统包含一个init程序,内核将执行它。寻找其他文件系统并执行其他程序不再是内核的事情,而是新程序的工作。
Initramfs不需要很多功能。
Ramdisk 是一个基于ram的block device,是一个大小固定的内存块,可像disk一样格式化和挂载。Ramdisk像所有的block device一样,它需要一个文件系统驱动。此外还有一些弊端,比如如果ramdisk没有满,那么它占有的额外内存不能被使用;如果满了,那么不能进行扩展。 由于caching,ramdisk浪费了更多的内存。Linux设计为缓存所有从block device中读取或写入的文件和目录,ramdisk(实际上也是在内存里)和caching一起,浪费很多内存。 Initrd Boot loader Init Ram disk缩写,是一种机制,装载一个临时根文件系统到内存中,作为Linux startup process的一部分,为实际根文件系统的加载做准备的 对于2.4或更早的kernel来说,使用的是该方法。 Ramfs 后续Linus Torvalds有一个巧妙的想法:Linux的缓存是否可以被挂载为一个文件系统,只要保持文件在缓存中,且不将它们清除,直到它们被删除或系统重启。Linus写了一小段程序将缓存包起来,称为ramfs,其他kernel的开发者建立一个加强版本称为 tmpfs(它可以写数据到 swap,及限制挂载点的大小),initramfs 就是 tmpfs 的一个实例。 Initramfs Init ramfs缩写,是一种机制,装载一个临时根文件系统到内存中,作为Linux startup process的一部分,为实际根文件系统的加载做准备。 比较: (1)initrd 通常是一个单独的文件,initramfs通常和linux kernel映像在一起。 (2)Initrd进行了gzip压缩,有文件系统格式,比如ext2,需要kernel包含对于的驱动。然而initramfs是一个gzip cpio压缩,类似tar不过更简单。内核的cpio提取代码非常小。 (3)Initrd中的init会做一些设置,然后返回到kernel。Initramfs中的init不会返回到kernel,它可能通过exec转到其他根文件系统。 (4)当转到其他根设备时,initrd将pivot_root然后umount ramdisk。但是initramfs是rootfs,记不需要pivot_root,又不需要umount,只需要释放所有空间,然后转到其他rootfs即可。 总之,initrd使用了ramdisk,initramfs使用了ramfs。Initramfs机制比initrd机制要优越,是一种新的实现方式,我PC用的Ubuntu14.04 Linux 3.16,按道理用的是initramfs,但是名字是initrd.img。 参考: http://stackoverflow.com/questions/10603104/the-difference-between-initrd-and-initramfs http://blog.csdn.net/future_fighter/article/details/3866073 https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
