精华内容
下载资源
问答
  • Linux开机启动

    2015-03-27 16:56:58
    在《Linux系统服务与开机启动》介绍了一种开机启动服务程序/应用程序的方法,但是在某些嵌入式系统中并不可行。这里再介绍另外2种比较简单的方法。 1 /etc/rc.local Ubuntu 14.04的/etc/rc.local的原始内容那如下 #...

    0 前言    

        《Linux系统服务与开机启动》介绍了一种开机启动服务程序/应用程序的方法,但是在某些嵌入式系统中并不可行。这里再介绍另外2种比较简单的方法。

    1 /etc/rc.local

        Ubuntu 14.04的/etc/rc.local的原始内容如下

    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    
    exit 0

        可见它其就是一个shell脚本,根据注释说明,只要在exit 0之前添加你希望开机启动的命令即可!

        :Ubuntu18.04后不再使用inited管理系统,改用systemd,它默认不会执行/etc/rc.local脚本,但执行如下命令可兼容旧版本系统[2]:

    ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

    2 /etc/profile

        在这个文件的末尾添加相应的命令,实现的是“登陆启动”,即是说,需要用户登陆系统才启动。

    参考资料

    [1]linux开机启动服务的修改与查看
    [2]Ubuntu 18.04 rc.local systemd设置

     

    展开全文
  • Linux 开机启动

    千次阅读 2015-01-11 20:56:34
    ,也就是说用户可以把需要开机启动的命令、运行可执行脚本的命令写入这个文件,这样就可以在系统启动时自动执行这个命令,比如把一个shell脚本的完整路径写入这个文件,那这个shell脚本就会在开机后自动执行。...

    init.d / rc.d / rc*.d

    在Linux系统中 /etc/init.d是个目录,这个目录里面用于放置shell脚本,注意是脚本,这些脚本是启动脚本,用于Linux中服务的启动、停止、重启.

    /etc/init.d里的shell脚本能够响应start,stop,restart,reload命令来管理某个具体的应用

    运行级别

      Init进程是系统启动之后的第一个用户进程,所以它的pid(进程编号)始终为1。init进程上来首先做的事是去读取/etc/目录下inittab文件中initdefault id值,这个值称为运行级别(run-level)。它决定了系统启动之后运行于什么级别。运行级别决定了系统启动的绝大部分行为和目的。这个级别从0到6 ,具有不同的功能。不同的运行级定义如下:

    0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)
    1 - 单用户模式
    2 - 多用户,没有 NFS
    3 - 完全多用户模式(标准的运行级)
    4 – 系统保留的
    5 - X11 (x window)
    6 - 重新启动 (千万不要把initdefault 设置为6,否则将一直在重启 )rc.d

    知道了运行级别之后,,对于每一个运行级别,在rc.d下都有一个子目录分别是rc0.d,rc1.d ….. rc6.d。每个目录下都是到init.d目录的一部分脚本一些链接。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在rc5.d下,但是放在这个rc5.d下的都是一些链接文件,链接到init.d中相对应的文件,真正干活的init.d里的脚本。

    rc.local

    rc.local也是我经常使用的一个脚本。该脚本是在系统初始化级别脚本运行之后再执行的,因此可以安全地在里面添加你想在系统启动之后执行的脚本.

    ,也就是说用户可以把需要开机启动的命令、运行可执行脚本的命令写入这个文件,这样就可以在系统启动时自动执行这个命令,比如把一个shell脚本的完整路径写入这个文件,那这个shell脚本就会在开机后自动执行。

    开机自运行程序

    若在home下的autorun文件夹中有一个test程序,要在系统中设置自启动,可以在/etc/rc.local文件中添加如下:

    cd /home/autorun
    ./test &

    其中,&表示后台运行。

    开机自动加载驱动模块

    insmod  /home/user/Drivers/key/key.ko
    mknod  /dev/button c 501 0

    profile.d

    将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。

     

     

     

    展开全文
  • 装了windows和linux双系统,突然开机后没有出现启动菜单,而是出现了[MinimalBASH-likelineeditingissupported.Forthefirstword,TABlistspossiblecommandcompletions....

    装了

    windows

    linux

    双系统,突然开机后没有出现启动菜单,而是出现了

    [ Minimal BASH-like line editing is supported. For the first word, TAB

    lists possible command completions. Anywhere else TAB lists the

    possible completions of a device/filename. ]

    grub>;

    在这种情况下怎么进入

    windows

    linux

    系统呢?

    进入

    windows

    ,进行如下操作:

    grub>root (hd0,0) //

    1

    块硬盘的第一个分区

    C

    grub>chainloader (hd0,0)+1 //

    加入链

    grub>boot //

    即可进入

    windows

    系统

    进入

    linux

    ,进行如下操作:

    grub>root (hd0,6

    )

    //

    这里的

    6

    表示的是我机器上

    linux

    系统

    /boot

    所在的分区号,

    具体数值取决于自己实际

    情况

    grub>kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 ro root=LABEL=/

    //vmlinuz-2.6.27.5-117.fc10.i686

    是可执行的

    Linux

    内核,位于

    /boot

    目录下,内核版本不一样,这个文件

    也不一

    样,所以具体文件名取决于自己实际情况

    grub>initrd /boot/initrd-2.6.27.5-117.fc10.i686.img

    //initrd-2.6.27.5-117.fc10.i686.img

    是初始化

    linux

    的镜像,位于

    /boot

    目录下,内核版本不一样,这个文件

    不一样,所以具体文件名取决于自己实际情况

    grbu>boot //

    即可进入

    linux

    系统

    以上方法虽然可以进入系统,但是每次开机都要输入这些命令。解决方法就是重新将

    grub

    写入

    mbr

    ,使得

    开机后启动菜单能够出现。

    展开全文
  • linux开机启动动画

    千次阅读 2016-09-28 09:27:15
    linux开机启动动画
    在基于linux的嵌入式仿真平台开发中,终端的美观和可定制是一个重要的问题。开机时滚动在屏幕上的字符串和单调的penguin图标,使嵌入式设备仍然脱离不了pc的痕迹,linux控制台上单调的“白纸黑字”型表现方式可谓大煞风景。改造linux控制台使之美观可定制地展示开机信息和logo成为基于嵌入式linux应用的一项重要工作。
        开源项目bootsplash(http://www.bootsplash.org/)为解决这个问题提供了一个完美的解决方案。Boot-
    splash通过对内核打补丁来改变linux framebuffer控制台对图形显示的支持。通过用户空间程序来定制启动logo、设定控制台背景和显隐启动时的字符信息,甚至可以支持开机画面的动画显示。本文介绍利用splashboot打造启动画面的解决方案,涉及内核补丁、用户空间设置等方面的具体工作。
    1 内核补丁和控制工具


    1.1 支持bootsplash的内核补丁
       针对不同的内核版本,bootsplash站点上给出了相应的内核补丁。我们所使用的内核版本为2.4.23,下载并给内核打上补丁:


    cd /usr/src/linux
    make mrproper
    patch -Np1 -i ../bootsplash-3.0.7-2.4.23.diff
    重新编译内核:
    make menuconfig
    选上如下的几个参数:
    Code maturity level options --->
    Prompt for development and/or incomplete code/drivers
    Block devices ---> RAM disk support
    Block devices ---> Initial RAM disk (initrd) support
    Console drivers ---> Video mode selection support
    Console drivers ---> Frame-buffer support --->
    Support for frame buffer devices
    VESA VGA graphics console
    Use splash screen instead of boot logo
    然后编译内核:
    make dep && make bzImage
    再把生成的内核拷贝到/boot下:
    cp arch/i386/boot/bzImage /boot/linux-bootsplash
    这样我们得到的新内核bzImage就是支持bootsplash的内核了,剩下的工作就是对bootsplash的定制了。




    1.2 安装用户空间程序
        下载bootsplash工具,解压安装:
        tar –zxf bootsplash-3.0.7.tar.gz
        cd  bootsplash-3.0.7/Utilities
        make
        cp fbresolution fbmngplay fbtruetype splash /sbin/


        这样完成了对用户空间工具的安装,其实bootsplash分别利用如下的四个程序:splash程序是将需要在framebuffer下显示的图片资源制作成启动ram盘的工具;fbmngplay读mng文件,播放动画;fbtruetype显示truetype字体;fbresolution检查分辨率。后面提到的脚本,只是以不同参数来读取配置文件,调用上面的这几个程序。


    2 开机LOGO的定制


    2.1 设置splash屏幕的主题
        前面安装好的splash用户空间程序中有一个程序splash,它需要一个配置文件来指明使用哪个图片、要不要隐藏文本信息的输出等。可以看出“theme”就是splash工具需要的配置文件、图片和其他所需要的文件的集合。有很多已经准备好的theme可供挑选,我们也可以定制theme。为了方便起见,我们下载theme-Linux.tar.bz2并以它为theme。
        建立目录/etc/bootsplash/themes,解压Theme- Linux.tar.bz2到这个目录下,现在的目录结构应该是:
    /etc/bootsplash/themes/Linux
        读者朋友可以看看该目录下的bootsplash-1024x768.cfg来观察配置文件的格式。这个简单的文件包含的选项不多,事实上它只是清楚地表明应该显示哪幅图片、控制台显示文本的颜色和背景色以及文本信息输出的位置区域。另外,不要忘了它还可以分别指定verbose和silent模式下显示文件的位置。Silent模式禁止显示启动信息,代之以一个可选的进度条(这需要关于A外包脚本的更多设置)。基于这个配置文件,你可以自己修改以显示自己喜欢的图片和采用自己喜欢的模式。
    2.2 利用splash小工具安装splash主题到initrd
        在系统启动的早期阶段,内核还不能读写硬盘。这个阶段要显示图片,那么图片放在什么地方那?答案是把图片写到ramdisk里,这样在启动的时候才能读到,因为这时候还没有加载分区呢。当然不用担心initrd的制作,splash小工具能轻松搞定。Splash小工具能根据基于你选择的配置文件(theme)来自动产生一个initrd。所要做的就是执行如下命令:
        splash -s -f /etc/bootsplash/themes/arch/config /arch-1024-boot.cfg  /boot/initrd.splash 
        生成的initrd.splash就是一个新的initrd。在GRUB或LILO中加入它就可以了。
        按如下的方法修改GRUB或LILO:
        在GRUB中加入或修改下面的行:
        kernel (hd0,3)/boot/vmlinuz?2.4.21?melenas root=/dev/hda4 vga=791 splash=silent
        initrd (hd0,3)/boot/initrd.splash
        在LILO中加入或修改下面的行:
        vga=791
        initrd=/boot/initrd.splash
        append="splash=silent"
        来看看这几行的意义:
        vga=791: boot splash 将在1024x768 分辨率和65000 色 (16 位色)下显示。Framebuffer的设定要根据我们所使用的theme的分辨率和颜色深度来选择。
        splash=silent: 在silent模式下显示boot splash. 如果你希望用vebose模式,只需删除此行即可。Verbose模式是缺省模式。 
        initrd=/boot/initrd.splash: 这行将initrd.splash调入启动ram盘(图片存于其中)。
        更新LILO或GRUB后,就可以看到精美的启动画面。


    3 启动进度条的显示


        首先我们要弄清楚小工具程序progress(它是和splash程序一起拷到/sbin目录下的)。progress能够在framebuffer 设备(默认情况下是/dev/fb0)上画四边形。不带任何参数运行progress,我们可以看到该程序的可选参数列表,我们感兴趣的几个参数是:
        x: 四边形起始点的x坐标
        y: 四边形起始点的y坐标
        dx: 四边形的宽度
        dy: 四边形的高度
        color: 四边形的颜色。这是一个16进制数,于web页上表示颜色的一致。
        举例说明之:
        progress 0 0 512 384 FFFFFF
        将会在屏幕左上角画一个白色的四边形,这个四边形占据四分之一屏幕。
        progress 256 192 521 384 FCD192
        将会在屏幕正中间位置画一个黄色的四边形。
         看这些例子的效果应该在tty终端上运行,不要在Konsole 或xterm window上看效果。
        搞清楚progress的用法后,我们来看怎么把它与系统启动联系起来。通过分析Debian的启动代码,我们可以看出:它的启动脚本在每次启动完一个服务程序(xfs, cron, samba 或其他服务程序)后使用progress程序来在指定位置画指定大小的四边形。在Debian中启动脚本有两个:先执行/etc/init.d/rcS然后执行 /etc/init.d/rc。下面研究一下/etc/init.d/rcS代码,注意这个脚本一次调用各个rulevel下的脚本。我们在其中加入画四边形的代码,加入的代码用加黑表示:
        # 初始化变量j 
        # j 为进度条的宽度
        j=20
        for i in /etc/rcS.d/S??*
       do
          [ ! ?f "$i" ] &continue
        # 进度条开始
        #
         # 保证进度条宽度不超出范围
        if ((j <616))
        then
        # 此时调用progress程序,画比前一次宽一个单位
        #(15个像素)的进度条
        # x y dx dy color
        /usr/local/bin/progress 204 667 $j 21 FCD123
        let j=j+15
        fi
        # 结束进度条绘制
        case "$i" in
        *.sh)


        (
        trap ? INT QUIT TSTP
        set start
        . $i
        )
        ;;
        *)
        #遍历sh 文件后, 启动子进程
        $i start
        ;;
        esac
        done


        上面的代码画出了四边形的第一部分,我们需要接着画与/etc/init.d/rc相关的第二部分。为了平滑地接着第一部分画,我们需要知道第一部分四边形画到什么位置结束的。
        #
        danger_var=395
        j=danger_var
        for i in /etc/rc$runlevel.d/S*
        do
        [ ! ?f $i ] &continue
        if [ $previous != N ] &[ $previous != S ]
        then
        #
        # Find start script in previous runlevel and
        # stop script in this runlevel.
        #
        suffix=${i#/etc/rc$runlevel.d/S[0?9][0?9]}
        stop=/etc/rc$runlevel.d/K[0?9][0?9]$suffix
        previous_start=/etc/rc$previous.d/S[0?9][0?9]$suffix
        #
        # If there is a start script in the previous level
        # and _no_ stop script in this level, we don't
        # have to re?start the service.
        #
        [ ?f $previous_start ] &[ ! ?f $stop ] &continue
        fi
        #继续进度条绘制
        #保证进度条宽度不超出范围
        if ((j <616))
        then
        /usr/local/bin/progress 204 666 $j 21 FCD123
        let j=j+15
        fi
        #结束进度条绘制
        case "$runlevel" in
        0|6)
        startup $i stop
        ;;
        *)
        startup $i start
        ;;
        esac
        done


        这段代码以同样的方式接着画四边形进度条。但是danger_var是什么呢?前面说过为了平滑地接着第一部分画,我们需要知道第一部分四边形画到什么位置结束的。这个位置就用danger_var来记录。问题又来了,怎么将第一个脚本里的变量传到第二个脚本?可以在第一个脚本/etc/init.d/rcS的末尾加上如下的代码:
        sed 's/danger_var=[0?9]*/danger_var='$j'/g' /etc/init.d/rc > /tmp/boots
        mv /tmp/boots /etc/init.d/rc
        chmod 755 /etc/init.d/rc
        上面的代码很清楚,获得j的值,在第二个脚本文件rc中寻找字符串“danger_var=…”并把它修改为 “danger_var=结束时的j值”,把修改后的文件另存为/tmp/boots,然后重命名为/etc/init.d/rc并改变执行权限。
        如果选用danger_var作为变量名来传递位置值,那么注意在其他启动脚本中不能出现名字冲突。
        现在,重启计算机,可以享受美丽的开机进度条了。


    4 结论


        通过开源项目bootsplash提供的内核补丁和各种用户空间工具,可以实现对FrameBuffer下的控制台美化和定制。这对于嵌入式仿真环境平台的开发有着重要的意义,使得嵌入式仿真环境平台从一定程度上减少PC的痕迹,成为个性化和高度可定制的平台
    展开全文
  • 巨坑啊~Linux开机启动一些脚本,被我玩坏了N多次,其中还挂了几次,具体参考:Linux、Centos设置启动脚本没有结束,导致无法开启机器 三种方式Linux开机启动 /etc/rc.local chkconfig systemd服务 实现 第一种方式...
  • linux开机启动流程

    千次阅读 2018-08-13 09:47:56
    操作系统的启动分为两个阶段:引导boot和启动过...总体可将LINUX开机启动过程分为四个步骤: 1. BIOS上电自检(POST) 2. 引导装载程序(GRUB2) 3. 内核初始化 4. 启动systemd,其为所有进程之父 注意,本文以 ...
  • Linux开机启动流程分析

    千次阅读 2016-11-25 15:00:46
    Linux开机启动十步骤 收藏分享2012-2-6 11:15| 发布者: 红黑魂| 查看数: 1366| 评论数: 0|来自: 比特网 摘要: 开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX...
  • Linux开机启动过程分析 开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。 启动第一步--加载BIOS 当你打开计算机电源,...
  • linux开机启动顺序

    千次阅读 2019-03-05 17:02:12
    文章目录linux开机启动顺序概述BIOS: basic input output system 基本输入输出系统MBR: master boot record 主引导记录.主引导程序总结第一个程序: init运行等级System V initialization方式Upstart方式Ubuntu自动...
  • Linux开机启动详解

    千次阅读 2012-06-08 20:09:16
    Linux开机启动详解 Linux开机启动过程指的是从打开计算机电源到显示用户登录画面的过程。 第一步:加载BIOS  BIOS(Basic Input Output System)信息存储在计算机的主板上,需要靠主板的锂电池来维持。其中包含...
  • 关于Linux开机启动流程的思维导图。放大即可看清。
  • linux开机启动过程(简述)

    千次阅读 2019-04-06 13:53:35
    简述linux开机启动过程 第一步:加电 第二步:加载BIOS设置,选择启动盘。 这是因为因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信 息、PnP特性等等。在此之后,计算机心里就有谱了...
  • linux 开机启动脚本

    2013-03-27 23:55:41
    linux 开机启动脚本顺序。   第一步:启动内核   第二步:执行init (配置文件/etc/inittab)   第三步:启动相应的脚本,并且打开终端/etc/init.d   rc.sysinit rc.d(里面的脚本) rc....
  • 【Linux】Linux开机启动流程

    千次阅读 2021-02-10 10:37:26
    熟悉开机启动流程,了解其背后的原理,可以更好的深入了解Linux的核心工作原理。 1、加载BIOS BIOS(basic input output system),直译为“基本输入输出系统”。 bios信息极为重要,包含了CPU、设备启动顺序、硬盘...
  • linux开机启动详解

    千次阅读 2012-04-01 21:38:51
    linux开机启动详解 2010-06-28 11:41 1)压缩与非压缩内核映象  非压缩内核映象是真正的 Linux 内核代码。压缩内核映象是把非压缩内核映象作为数据进行 压缩打包,并加上了解压缩代码。也就是说,它...
  • linux开机启动项的设置

    千次阅读 2010-12-28 17:25:00
    linux开机启动
  • linux开机启动服务详解

    千次阅读 2012-09-30 02:15:16
    ...linux开机启动服务详解(转)  2012-07-29 17:45:28| 分类: 常见错误 |字号 订阅 Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Li
  • linux 开机启动脚本顺序。   第一步:启动内核   第二步:执行init (配置文件/etc/inittab)   第三步:启动相应的脚本,并且打开终端/etc/init.d   rc.sysinit rc.d(里面的脚本) rc.local   ...
  • linux开机启动脚本

    千次阅读 2018-09-17 16:23:06
    来一种linux简单使用的开机启动脚本: 1. cd /etc/rc.d/init.d/ 来到这个目录下 2.vi aa.sh 创建一个脚本文件 比如我的脚本文件是 aa.sh 3.编辑脚本文件: #!/bin/sh #chkconfig: 2345 80 90 #...
  • linux下不是所有的软件安装完成之后都有开机启动服务,有的可能需要自己去添加。除此之外还可以查看和删除。①开机启动服务查询#chkconfig --list其中0-6表示各个启动级别 (0-6各自代表什么含义可以看:Linux中7种...
  • linux开机启动详细流程图: 一、BIOS 加电自检 当你按电源开关开机时,电脑会首先去启动BIOS(基本输入输出系统),BIOS一般是集成在主板上的. BIOS 的工作 1.检测连接硬件,比如显卡,内存,磁盘等等,检测的目的是...
  • Linux 开机启动websphere 服务

    千次阅读 2012-09-27 17:30:30
    Linux 开机启动websphere 服务 1. 环境  OS: SUSE  Application Server: Websphere 7   2. 准备shell 脚本  启动websphere 服务脚本,命名为websphere   #!/bin/bash # # #chkconfig: 2345 ...
  • Linux开机启动项详解

    万次阅读 2018-06-25 21:48:23
    Linux启动顺序中决定程序启动项的在init这里,分为两大步骤:按级别加载/etc/rc(0-6).d目录下的启动脚本;加载/etc/rc.local文件。所以设置启动项的方案按原理就分为这两种方式。             较简单...
  • Linux开机启动顺序小结

    万次阅读 2012-04-21 20:45:06
    Linux开机启动十步骤 收藏分享2012-2-6 11:15| 发布者: 红黑魂| 查看数: 1366| 评论数: 0|来自: 比特网 摘要: 开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析...
  • Linux开机启动过程分析十步

    千次阅读 2011-08-10 20:31:37
    Linux开机启动过程分析十步 开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。 启动第一步--加载BIOS 当你打开...
  • linux开机启动程序

    2016-11-26 15:52:20
    本文针对不熟悉shell脚本编程的小伙伴,给... 我们可以使用crontab 来实现开机启动脚本或程序。(注意:不是每一个版本的crontab都支持这个) # crontab -e @roboot /home/meng/Downloads/elasticsearch/elasticsearc
  • Linux开机启动步骤

    2016-08-25 10:21:42
    分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。  启动第一步--加载BIOS  当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这...
  • linux开机启动记录

    千次阅读 2016-08-03 13:51:38
    Linux开机启动配置随linux的版本不同,有一些不同之处。 网上说的那些配置文件如 inittab,rc.local,rc.d并不是都有的,这对初学者造成了困惑。 有没有什么是比较通用的方式呢,还好有!   ① :linux中有个东西...
  • 出现grub rescue模式一般是硬盘分区出现变动、导致旧的grub找不到启动文件而出现的.出现错误具体原因未知,但开机不能引导肯定是grub配置文件出错,/boot/grub2/grub.cfg解决方法:一,插入安装U盘或者光盘,进入...
  • linux开机启动服务的修改与查看

    千次阅读 2014-09-18 15:36:59
    linux开机启动服务的修改与查看 每次系统开机的时候,都会根据不同的runlevel级别启动不同的服务。 开机按[CTRL]+[ALT]+[F7]/[F8]可查看系统启动时正在启动的服务!!!!  众所周知Linux给我们提供了7中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,419
精华内容 7,367
关键字:

linux开机启动

linux 订阅