首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 开机用硬盘启动

一、基础概念

  1. BIOS(基本输入输出系统)
    • 这是计算机启动时运行的固件程序。它负责初始化硬件设备,如CPU、内存、硬盘等,并查找可启动的设备。
    • 在传统的PC架构中,BIOS会按照一定的顺序(通常可以在BIOS设置中调整)检查设备,如光驱、U盘、硬盘等,寻找有效的启动引导程序。
  • 引导加载程序(Bootloader)
    • 当BIOS确定从硬盘启动后,它会加载硬盘上的引导加载程序。对于Linux系统,常见的引导加载程序有GRUB(GRand Unified Bootloader)。
    • 引导加载程序的主要任务是加载内核到内存中,并将控制权交给内核,以便内核可以进一步初始化系统并启动各种服务。

二、相关优势

  1. 灵活性
    • 可以方便地在同一台计算机上安装多个操作系统。例如,通过GRUB引导加载程序,可以在启动时选择进入Linux系统或者Windows系统。
  • 定制性
    • 引导加载程序允许用户自定义启动选项。比如,可以选择不同的内核版本启动Linux系统,这在测试新内核或者解决特定硬件兼容性问题时非常有用。

三、类型(主要从引导加载程序角度)

  1. GRUB
    • GRUB有多个版本,如GRUB 2是比较常用的。它具有图形化界面(在支持的系统中),可以方便地查看和选择启动项。
    • 它支持多种操作系统,并且能够自动检测系统中的硬件设备。
  • LILO(Linux Loader)
    • 这是较早的Linux引导加载程序,相对GRUB来说功能较为简单,但在一些老的系统或者特定需求下仍然可能被使用。

四、应用场景

  1. 服务器环境
    • 在服务器上,通过硬盘启动Linux系统是常见的操作。管理员可以根据服务器的配置需求,从硬盘启动定制化的Linux发行版,如CentOS用于构建稳定的Web服务器环境,或者Ubuntu用于运行数据挖掘任务。
  • 个人计算机
    • 对于喜欢尝鲜的用户,在个人计算机上安装多个操作系统并通过硬盘启动来体验不同的Linux发行版,如Fedora用于体验最新的桌面技术,或者Debian用于构建安全的家庭网络服务器。

五、可能遇到的问题及解决方法

  1. 无法从硬盘启动Linux系统
    • 原因
      • 引导加载程序损坏。例如,GRUB文件被误删除或者修改。
      • 硬盘分区表错误。如果分区表出现问题,BIOS可能无法正确识别硬盘上的引导扇区。
      • 硬件故障。如硬盘的MBR(主引导记录)扇区损坏,可能是由于突然断电、硬盘老化等原因。
    • 解决方法
      • 如果是引导加载程序损坏,可以使用Linux安装盘进入救援模式来重新安装GRUB。例如,在CentOS系统中,使用安装盘启动后选择“救援模式”,然后执行grub2 - install /dev/sda(假设系统安装在/dev/sda硬盘上)来重新安装GRUB到硬盘的主引导记录扇区。
      • 对于分区表错误,可以使用工具如fdisk或者gparted(在Live CD/USB环境下)来检查和修复分区表。
      • 如果是硬件故障导致的MBR损坏,可以使用工具如dd命令(在有备份的情况下)或者专门的硬盘修复工具来恢复MBR。例如,在Linux下可以使用dd if=/dev/zero of=/dev/sda bs = 512 count = 1来清除MBR(这会清除所有分区信息,需要谨慎操作),然后重新创建分区表和安装引导加载程序。
  • 启动时GRUB菜单显示异常
    • 原因
      • GRUB配置文件错误。GRUB的配置文件(通常是/boot/grub/grub.cfg)如果被错误修改,可能导致菜单显示不正确或者无法启动正确的系统。
      • 内核文件丢失或者版本不兼容。如果内核文件被误删除或者安装了不兼容的内核版本,GRUB可能无法正确加载内核。
    • 解决方法
      • 对于GRUB配置文件错误,可以进入GRUB的命令行模式(在GRUB菜单出现时按c键),然后手动指定内核和initrd(初始RAM磁盘)文件来启动系统,例如:linux /boot/vmlinuz - root=/dev/sda1(假设根分区是/dev/sda1),之后再重新生成正确的grub.cfg文件。可以使用grub2 - mkconfig -o /boot/grub2/grub.cfg命令(在系统启动后)。
      • 如果是内核文件问题,需要重新安装正确的内核版本。在基于RPM的系统(如CentOS)中,可以使用yum reinstall kernel命令,在基于Debian的系统中可以使用apt - get install --reinstall linux - image -$(uname -r)命令。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux开机启动(bootstrap)

计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。...然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行或者错误信息。了解计算机开机过程有助于我们修复开机可能出现的问题。...这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS允许你从软盘、光盘或者硬盘中选择一个来启动计算机。...随后,内核会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。到此,内核就完成了在计算机启动阶段的工作,交接给init来管理。...这些脚本执行如下功能: 设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络…… 当这些初始脚本,操作系统已经完全准备好了,只是,还没有人可以登录。

8.3K80
  • Linux开机启动(bootstrap)

    作者:Vamei 来源:见文末 计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。...然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行或者错误信息。了解计算机开机过程有助于我们修复开机可能出现的问题。...这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS允许你从软盘、光盘或者硬盘中选择一个来启动计算机。...随后,内核会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。到此,内核就完成了在计算机启动阶段的工作,交接给init来管理。...这些脚本执行如下功能: 设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络…… 当这些初始脚本,操作系统已经完全准备好了,只是,还没有人可以登录。

    6.5K50

    Linux设置开机启动

    开机启动 作者测试时,Linux版本为RedHat6,同时应用在CentOS6应该也可以(作者未实测,但有同事在CentOS6上使用可行),系统版本的不同,可能造成操作上的差异(CentOS7就与CentOS6.../profile echo '环境变量添加成功' #启动web /usr/local/tomcat-web/restart.sh & echo 'tomcat-web 启动成功' 注意加载环境变量 2....如果没有生效,继续 6.查看启动系统的级别,命令: runlevel 这里是 N 3,代表启动级别为3 执行命令:ll /etc/rc3.d/ 正常情况,这里会有S99local -> ...../rc.local这样的一个快捷链接,这个就是系统启动时,加载rc.local的快捷链接。如果这里没有,那么rc.local就不会被调用。...7.启动rc.load 在rc3.d下面执行:ln -s ../rc.local S99local 执行:chmod +x S99local 8.重启

    7.9K20

    linux设置开机自启动

    linux设置开机自启动执行命令: 执行命令: 编辑"/etc/rc.local",添加你想开机运行的命令 运行程序脚本:然后在文件最后一行添加要执行程序的全路径。...例如,每次开机时要执行一个hello.sh,这个脚本放在/usr下面,那就可以在"/etc/rc.local"中加一行"/usr/./hello.sh",或者" cd /opt && ..../hello.sh " 注意,你的命令应该添加在:exit 0 之前 image.png 在/etc/init.d目录下添加自启动脚本 linux在“/etc/rc.d/init.d”下有很多的文件...,每个文件都是可以看到内容的,其实都是一些shell脚本或者可执行二进制文件 Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。...在下次开机启动的时候,proxy.py就会以root用户身份被自动运行。

    17.8K40

    Linux系统的开机自启动

    比如某些安全卫士,某些听歌软件等等,它们在系统启动完成时并自动启动,而linux系统也有这样的机制,我们来看看linux如果管理开机自启动。...而有些进程就是在开机时启动的,有些则在进入系统后由用户使用时触发启动的。 你可以在linux的命令行中输入以下命令查看系统中正在运行中的进程。...ps -ef # ps --help 或 man ps 了解e和f参数的作用 有了这些概念以后,我们就可以来了解如何去管理linux系统中的服务开机自启动(services start at boot...在linux系统中,管理服务启动的系统叫“systemd”,它是linux系统启动时第一个启动的进程,后面所有的进程都是由这个进程启动,所以你会看到它的进程号PID为1。...管理服务开机启动与否的命令是systemctl,它的作用不止于此,但我们此刻只了解它与自启动管理相关的部分。 # 我们以时间同步服务chrony举例,查看chrony的状态。

    8.4K30

    linux怎么设置开机自启动

    image.png 一、rc.local文件中添加自启动命令 执行命令: 编辑"/etc/rc.local",添加你想开机运行的命令 运行程序脚本:然后在文件最后一行添加要执行程序的全路径。...例如,每次开机时要执行一个hello.sh,这个脚本放在/usr下面,那就可以在"/etc/rc.local"中加一行"/usr/./hello.sh",或者" cd /opt && ..../hello.sh " 注意,你的命令应该添加在:exit 0 之前 二、在/etc/init.d目录下添加自启动脚本 linux在“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的...,其实都是一些shell脚本或者可执行二进制文件 Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。...系统服务的启动就是通过这种方式实现的。

    17.3K40

    【Linux】挂载硬盘并设置开机自动挂载

    本文介绍了在Linux系统下挂载硬盘的概念和步骤,并讲解了开机自动挂载的方法。1.什么是挂载秉承着Linux“一切皆文件”的理念,硬盘这种东西在系统中以一个文件的形式呈现。...我们需要在Linux中创建一个目录去对应一个硬盘的一个扇区,这样我们就可以使用这个硬盘的特定扇区了。...想要永久挂载,需要设置系统开机自动挂载。系统是根据/etc/fstab这个文件来自动挂载的,我们只需要修改这个文件即可。3.手动挂载查看可挂载的硬盘扇区文件管理器其实并不会列出所有可以挂载的硬盘。...想要永久挂载,需要设置系统开机自动挂载。系统是根据/etc/fstab这个文件来自动挂载的,我们只需要修改这个文件即可。...用管理员权限创建即可:han@ASUS-TUF-Gaming-F15-FX507ZR:~$ sudo mkdir /media/han/BA121BD2121B928Dhan@ASUS-TUF-Gaming-F15

    54610

    linux centos系统开机启动流程

    这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。...在BIOS将系统的控制权交给硬盘第一个扇区之后,就开始由Linux来控制系统了。...启动第二步—选择启动顺序,加载MBR         BIOS决定了第一启动项是哪个设备,(默认为硬盘)硬盘的MBR前446字节称为Boot Loader,Boot Loader的主要功能就是去识别加载操作系统中的核心文件...Boot Loader 的另一个主要功能是提供菜单,并将其启动管理功能转交给其他的加载程序         MBR是由硬盘启动时,BIOS通常是转向第一块硬盘的第一个扇区,即MBR。...4)、完成了系统所有的启动任务后,linux会启动终端或X-Window来等待用户登录。

    3.4K30

    Linux系统开机启动流程(简述)

    1)开机自检,加载BIOS信息     CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息等 2)MBR引导     硬盘的0柱面0磁道1扇区被称为MBR(Master Boot...Reord)主引导记录,大小为512字节,里面存放预启动信息、分区表信息及分区标志等;分为两部分:第一部分为引导区,占446字节,第二部分为分区表,占66字节,记录硬盘的分区信息(其中前64字节是分区表信息...读取inittab文件,执行rc.sysinit,rc等脚本     读取/etc/inittab文件,获取系统运行级别,如级别3,文本模式或字符模式 /etc/rc.d/rc.sysinit,Linux...系统执行的第一个用户层文件,设定PATH、设定网络配置、启动swap分区、设定/proc等等, 进行初始化工作 /etc/rc.d/rc*.d/* 启动对应系统运行级别的脚本程序,如运行级别3,启动.../etc/rc.d/rc3.d/目录下所有文件,这些文件都是软链接文件,指向/etc/init.d/*     执行/etc/rc.d/rc.local文件,该文件是自己配置的开机自启动文件,自己开发的程序

    5.6K20
    领券