热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux启动时的一些闲言碎语

Linux启动时的一些闲言碎语--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
一、启动冲突
造成启动冲突的原因往往只有一个,MBR覆盖。比如先装的XP再装的Linux,Linux就会把XP安装时写入MBR的数据给覆盖掉,如果先装Ubuntu再装Fedora,Fedora的GRUB会安装到MBR上覆盖了Ubuntu的GRUB。这些情况都可能会造成某些操作系统不能启动。

幸好Linux在这方面还算人性化,它在覆盖XP在MBR中的数据之后,会自动搜索可启动的Windows分区,并且把XP的启动信息写到自己GRUB的menu.lst中,这样在装完Linux后能在启动菜单上看见原先的 Windows启动项(通常在最后一项)。

而有时候不小心会把Windows弄坏,需要重装Windows,等你Windows重新装好了,Linux也就启动不了了,因为Windows把MBR又给更新了。Windows和Linux抢MBR的矛盾一直如此激化。

那么如何防止两个系统吵架呢?两种方法。

第一种就是事后修复。用任何一张可以引导到grub的启动盘(比如,可以是你的LiveCD),进入grub。如果先进入的是终端,那么以超级用户模式在终端中输入

grub

即可进入终端,然后进行grub修复安装过程,如果你知道你的磁盘序号X(一般为0)和Linux分区序号(Partition Number)Y(从0开始数),那么可以运行:

root (hdX,Y)
setup (hd0)

后面一句的hd0表示把grub写到MBR上。

也可以简单地一句话:

setup (hd0) (hdX,Y)

成功了的话会返回successful

如果不知道或者忘记了Linux的分区序号(磁盘序号你应该知道吧,要是不确定就填0),先键入

root (hdX,

然后按TAB键,将会出现自动补全信息,此时你应该就知道Linux分区所在的序号了吧。

输入完毕后仍旧再进行setup操作。这样重启后GRUB就修复了。

第二种方法就是在重装XP前,先把Linux写在MBR里的信息给保存出来,保存成一个文件,通常这个文件的大小必须是512字节。运行这个命令:

sudo dd if=/dev/sda f=~/linux bs=512 count=1

(如果是SCSI硬盘则为sda,IDE硬盘为hda。of=后面的路径为输出路径,路径和文件名可以任意。)

就可以把MBR中的前512字节的信息保存到用户文件夹下名为linux的文件中。

然后重装XP,把这个linux文件放到Winodws分区中,为了便于管理,我们习惯上将其放入C盘根目录下。

接着修改XP的boot.ini,在最后一行添加如下语句:

c:\linux=”Ubuntu Linux Operation System”

并修改启动菜单读秒的长度。

重启之后想办法进入DOS重写分区表:

fdisk /mbr

再次重启就可以看到,XP的启动管理器中出现了双启动菜单,而选择”Ubuntu Linux Operation System”就和以前进入MBR的时候一样了。这种方法的原理也很清晰,将MBR头512字节(包含启动信息的头512字节啊)保存成文件,让 Windows系统来调用这个文件并且处理启动。

以后重装Windows,只要实现把那个长度为512字节的“linux”文件转移到别处,装完后移回来,修改boot.ini就可以了。

Linux不同发行版之间也需要协调才能和平共处,装了Ubuntu,还想装个Fedora,于是在硬盘上独立分区安装。结果装好后Ubuntu进不去了。想到肯定是Fedora也霸道地把自己的启动信息写到MBR中去而覆盖了Ubuntu的信息了。

于是想到修改menu.lst,因为menu.lst可以显示处理启动菜单。把Ubuntu分区挂载之后,找到Ubuntu下的menu.lst,把和它有关的启动语句给复制到Fedora的menu.lst中,重启电脑,可以了。

二、关于menu.lst

menu.lst用于管理启动菜单项。包括是否隐藏启动菜单、启动菜单倒计时、启动项显示等选项。一般的操作顾名思义就可以看懂是什么意思。

值得一提的是Linux的启动都是通过这两个文件的引导:kernel的vmlinuz-XXXXX和initrd的initrd.img。也就是说需要引导一个操作系统的话,在grub的menu中告知这两个文件所在的分区,加入这两个文件的路径就可以启动了。

比如:

title Ubuntu
root root(hd0,0)
kernerl /boor/vmlinuz-2.6.22-14-generic root=UUID=XXXXXX ro quiet splash locale=zh_CN
initrd /boot/initrd.img-2.6.22-14-generic

三、启动时候的挂载

老是手动挂一个分区太麻烦了,于是想到用fstab来自动挂载

fstab的每一个非注释行都挂了一个分区到对应路径下,其参数分别为:挂载的设备 挂载点 文件格式 挂载模式(此后的一大段我不甚了解)

“挂载的设备”中,我试过/dev/sda1这种的格式,发现不好使;再看看用UUID,先手动挂载需要的盘,在终端键入

ls -l /dev/disks/by-uuid

显示每个分区的uuid,一串乱七八糟的数字,在fstab中写下:

UUID=xxxxxxxxxxxxxx /media/sda8 vfat user,noauto,utf8,umask=000,gid=46 0 0

搞定。
推荐阅读
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • STM32与FPGA的对比及学习建议
    本文对比了野火STM32F103指南针板和Xilinx的PYNQ-Z2板(ZYNQ-7020),介绍了野火STM32F103指南针板的学习资料和讲解视频的详细程度,建议初学者学习野火的资料。同时,介绍了STM32开发所用的Keil程序和C指针的重要性。对于ZYNQ-7020的开发,提到了其自带的Linux、Ubuntu18.4系统以及使用SD卡烧入镜像的方法。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
author-avatar
陳小勳2502936731
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有