深入Linux的LILO

Linux加载程序GRUB和LILO配置示例 前言: PCs 的引导过程: 当 PC 启动时,BIOS (Basic Input Output Service) 会执行一个自检。当机器通过自检时,BIOS 会加载 Master Boot Record(或 MBR,通常位于引导驱动器的第一个 512 字节扇区)。引动驱动器通常是系统上的第一个硬盘驱动器,但也可以是一个磁盘、CD 或 USB 密匙。对于硬盘驱动器,MBR 加载一个阶段 阅读详情

深入Linux的LILO

null 江永忠 

〖 返回〗〖转发〗

深入Linux的LILO 
                                  作者: 江永忠  
                    
                     Linux的引导可以采用多种方式,其加载器LILO(Linux Loader) 
                   是一个灵活的引导加载程序,与其他常用的引导加载程序相比,LILO 
                   引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地 
                   处理多重系统、网络引导、大硬盘及大内存等诸多棘手的问题。 
                    
                     一、LILO的引导机制 
                    
                     众所周知,计算机的最初启动是由BIOS控制的,在对一些硬件 
                   (如:内存、键盘等)初始化之后,它会试图加载硬盘的主引导记录 
                   (MBR)或软盘的引导扇区。 
                    
                     MBR可通过两种方式运行,其一是定位到活动分区并加载相应的 
                   引导扇区,然后由引导扇区完成该分区内操作系统的基本组件的加载 
                   ;其二是直接从一指定分区中加载信息,并通过它装入任一分区的操 
                   作系统,诸如LILO、OS/2 boot loader及Partition Magic等引导加载 
                   程序都可以配置成这种方式。 
                    
                     软盘的引导扇区相当于硬盘活动分区的引导扇区,它通常用于装 
                   入软盘上的操作系统。 
                    
                     由此可见,只要把LILO安装在MBR、活动分区或者引导软盘上, 
                   就能接管计算机的控制权,然后由LILO完成后继的引导过程。LILO中 
                   建有一个引导表地址编码,借此它的引导程序就能定位到Linux的内 
                   核文件,这种地址编码既可以按照柱面/磁头/扇区(CHS)模式,又可 
                   以采用LBA的线性块号模式,因此,即使对某些SCSI控制程序LILO也 
                   能运转良好。 
                    
                     当LILO定位到配置文件后,经过预引导过程,就显示提示符: 
                     LILO boot: 
                    
                     此时,系统允许选择引导不同的操作系统或者不同的内核配置, 
                   按Tab键显示可选项列表,然后输入可选项或者直接回车选择缺省配 
                   置,如果选择了引导Linux,还可以直接传递参数到系统内核。 
                    
                     和其他系统的引导加载程序相比,LILO具有更大的灵活性,其引 
                   导方式也更丰富多彩。 
                    
                     ●当LILO被安装在硬盘的MBR、活动分区或引导软盘上时,作为 
                   原引导程序的替身,它能引导任一硬盘任一分区上的Linux和其他操 
                   作系统; 
                    
                     ●除了引导扇区,它没有任何隐含文件,也不需要使用特定的分 
                   区,它的配置文件可以在任何分区、甚至是存放在与Linux毫不相干 
                   的DOS分区的某个子目录下; 
                    
                     ●它能引导几个不同的内核配置,甚至是几个不同的内核; 
                    
                     ●它能引导同一机程序上的多个Linux版本; 
                    
                     ●它能从网络上引导Linux。 
                    
                     LILO的灵活性使得其配置变得相当复杂,当有多个系统共存时, 
                   建议先安装其他操作系统,最后再装Linux,这样,设置LILO对其他 
                   系统的引导会相对简单一些。 
                      
                     二、几个重要的LILO引导参数 
                    
                     LILO的引导参数有很多,在此只对一些比较重要的参数作一介绍 
                   。 
                     1.“boot=” 
                    
                     此参数指明包含引导扇区的设备名(如:/dev/had),若此项忽 
                   略,则从当前的根分区中读取引导扇区。 
                    
                     2.“root=” 
                    
                     此参数告诉内核启动时以哪个设备作为根文件系统使用,其设定 
                   值为构造内核时根文件系统的设备名,可用的设备名有: 
                    
                     (1)/dev/hdaN~/dev/hddN:ST-506兼容硬盘,a到d上的N个分区 
                     (2)/dev/sdaN~/dev/sdeN:SCSI兼容硬盘,a到e上的N个分区 
                     (3)/dev/xdaN~/dev/xdbN:XT兼容硬盘,a到b上的N个分区 
                     (4)/dev/fdN:软盘,A:(N=0)或B:(N=1) 
                     (5)/dev/nfs:由网络取得根文件系统的标志 
                    
                     3.“nfsroot=” 
                     若需通过NFS提供根文件系统来引导无盘工作站,此参数为内核 
                   指定了网络根文件系统所在的机程序、目录及NFS,其格式为:nfsroot= 
                   (〈server_ip〉:)〈root_dir〉(,nfs_options〉) 
                    
                     4.“nfsaddrs=” 
                     设定网络通讯所需的各种网络界面地址,如无此参数,则内核会 
                   试图用反向地址解析协定(RARP)或启动协定(BOOTP)找出这些参数, 
                   其格式为: 
                    
                     nfsaddrs=〈客户端IP〉:〈服务端IP〉:〈网关IP〉:〈子网屏蔽〉: 
                   〈客户端名称〉:〈网络设备名 〉:〈auto〉 
                    
                     5.“image=” 
                     指定Linux的内核文件。 
                    
                     6.“delay=” 
                     设定引导第一个映像前的等待时间。 
                    
                     7.“disk=” 
                     此参数为某一特殊的硬盘定义非标准参数。 
                    
                     8.“append=” 
                     为内核传递一个可选的参数行,其典型的应用是为不能完全由系 
                   统自动识别的硬盘指定参数,如:append = "hd=64,32,202" 
                    
                     9.“label=” 
                     此参数为每个映像指定一个名字,以供引导时选择。 
                    
                     10.“read-only” 
                     设定以只读方式挂入根文件系统,用于文件系统一致性检查(fsck) 
                   。 
                    
                     11.“install=” 
                     安装一个指定文件作为新的引导扇区,缺省为/boot/boot.b。 
                    
                     12.“loader=” 
                     说明所使用的链加载程序(chain loader),缺省为/boot/chain.b, 
                   如果不是从首硬盘或软盘启动,那么,此选项必须说明。 
                    
                     13.“table=” 
                     说明包含分区表的设备名,如果此参数忽略,引导加载程序将不 
                   能传递分区信息到已引导的操作系统。当此参数指向的分区表被修改 
                   时,必须重新运行/sbin/lilo。 
                    
                     14.“init=” 
                     内核初始化时执行的程序,通常过程为init、getty、rc和sh, 
                   版本1.3.43以来的Linux内核能够执行/sbin/init说明的命令行,若 
                   在引导过程中出现问题,则可设置init=/bin/sh直接跳到Shell。 
                    
                     15.“ramdisk_start=” 
                     由于内核不能放在压缩的内存文件系统映像内,为使内核映像能 
                   够和压缩的内存映像放在一张软盘内,加入“ramdisk_start=〈offset〉”,这样内核才? 
                   开始执行。 
                    
                     16.“mem=” 
                     此参数的目的之一是为Linux指定使用的内存数量:如mem=96MB, 
                   目的之二是指定mem=nopentium告诉内核不要使用4MB分页表。 
                    
                     17.“vga=” 
                     设置显示模式,如80×50、132×44等。 
                      
                     三、LILO典型配置方法 
                    
                     通常情况下,Linux的安装程序自身就可以完成LILO的安装配置, 
                   从而较好地解决多重系统的引导问题,如果系统不能自动完成这种配 
                   置,则可以通过手工修改配置文件/etc/lilo.conf来实现不同条件下 
                   的引导。 
                    
                     1.当系统能自动完成配置时 
                    
                     对于这种情况只有一个建议:将LILO安装到Linux分区的根上, 
                   而不是MBR这个多事地带。假设当前hda1中装有DOS/Windows,hda2中 
                   安装了Linux,则/etc/lilo.conf的内容大致如下: 
                    
                     boot=/dev/hda2#指定引导位置compact delay=50#延时5秒root=current 
                   #根在当前分区image=/boot/vmlinuz#指定linux的内核文件  label=linux 
                   #用linux为代表名称 other=/dev/hda1#其他操作系统所在的分区table=/dev/hda 
                   #指定包含分区表的硬盘label=dos#用dos为代表名称 
                    
                     2.当系统无法自动完成配置时 
                    
                     系统无法自动完成配置的情况不外乎两种: 
                     (1)BIOS不能直接看到Linux的根分区; 
                     (2)BIOS只能读写标准IDE硬盘的前504MB。 
                    
                     这时,必须遵循一个最基本的原则:建立一个BIOS能存取的较小 
                   的Linux分区,其中包含内核文件、映射文件及链加载程序等必要内 
                   容,而根则可以是另外一个独立的分区。至于配置上的其他细节,我 
                   们通过以下实例来进行说明。 
                    
                    
                     例1:主硬盘为IDE接口,第二硬盘为SCSI接口,根文件在SCSI 
                   上。 
                    
                     对策:在IDE硬盘上划分一个较小的Linux分区(/dev/hda2), 
                   其中包含基本文件,挂接到/u2下,其配置文件/etc/lilo.conf的主 
                   要内容为: 
                    
                     boot=/dev/hda#lilo装在主ide的mbr 
                       install=/u2/etc/lilo/boot.b#从boot.b安装lilo引导记录 
                       map=/u2/etc/lilo/map#安装程序建立此映射文件,告诉引导载入程序内核块的位置 
                       compact 
                       timeout=50 
                       image=/u2/vmlinuz #内核文件应事先拷贝到/u2下 
                       label=linux 
                       root=/dev/sda1#告诉内核根系统在scsi硬盘上read-only 
                       other=/dev/hda1 
                       loader=/u2/etc/lilo/chain.b #指明加载程序label=dos 
                    
                     例2:一个标准的IDE大硬盘需安装Linux和DOS/Windows。 
                     对于大硬盘问题,很多人只知道低于1024个柱面的限制,而不知 
                   为什么标准的IDE硬盘只能认前504MB。 
                    
                     其实,BIOS的int13调用是采用三个位元组的CHS编码,10位为柱 
                   面号,8位为磁头号,6位为扇区号。可能的柱面号码是0~1023,可 
                   能的磁头号码是0~255,而磁道上可能的扇区号码是1~63,以这24 
                   位最多可以定址8455716864个位元组(7.875GB)。 
                    
                     但不幸的是,标准的IDE介面容许256个扇区/磁道、65536个柱 
                   面及16个磁头。它自己本身可以存取237= 137438953472(128 GB), 
                   但是加上BIOS方面63个扇区与1024个柱面的限制后只剩528482304(504 
                   MB)可以定址得到。 
                    
                     对策:在硬盘的前500MB中划分350MB(/dev/hda1)给DOS,150MB(/dev/hda2)给Linux, 
                   谙嘤Φ呐渲梦募杏λ得饔才痰牟问? 
                     boot=/dev/hda 
                     ... ... 
                     disk=/dev/hda 
                     bios=0x80 
                     sectors=63 
                     heads=16 
                     cylinders=2100 
                     image=/vmlinuz 
                     append="hd=2100,16,23" 
                     root=/dev/hda2 
                     label=linux 
                    
                     四、LILO的卸载 
                    
                     当LILO覆盖了引导扇区时,它会保留一个引导扇区的备份在/boot/boot.xxyy中,其中 
                   xyy是16进制的设备主/次号码 
                   (major/minor numbers),利用命令“ls -l /dev/device”就可 
                   获得硬盘或分区的主/次号码。如果这些备份文件已经存在,那么,当你重新安装LILO或? 
                   构内核时,它将不再生成此文件,这就保证了此备份文件是最原始的引导扇区。 
                    
                     若要卸载LILO,你只需恢复初始的引导扇区就可以了。例如:LILO 
                   安装在/dev/had,对应的备份文件为/boot/boot.0300,简单地使用 
                   下面的命令即可: 
                    
                     dd if=/boot/boot.0300 of=/dev/had bs=446 count=1 
                    
                     当然,若想完全卸掉Linux,必须用Linux的fdisk对Linux分区进 
                   行破坏,因为DOS的fdisk无法移去非DOS分区。 
                    
                     关于LILO值得探讨的问题还有很多,但只要懂得了其内部机制, 
                   对更复杂的实际情况也能较圆满地解决。

lilo--Linux加载程序 LILO是一个在系统启动时运行的程序,它允许选择用于引导计算机的操作系统。 立即下载

相关推荐

Linux操作系统的LILO详解

LILO是一个在Linux环境编写的Boot Loader程序(所以安装和配置它都要在Linux下)。它的主要功能就是引导Linux操作系统的启动。但是它不仅可以引导Linux,它还可以引导其他操作系统,如DOS,WINDOWS等等。它不但可以作为Linux分区的引导扇区内的启动程序,还可以放入MRB中完全控制Boot Loadr的全过程。下面让我们看看几种典型情况下硬盘的主引导扇区和各个分区的引导扇区内程序的内容。(1)计算机上只装了DOS一个操作系统这种情况和刚才介绍的DOS

lilo--原理篇

lilo--原理篇null joe (左右为难)〖返回〗〖转发〗作者 joe (左右为难)                    标题  关于LiLo--原理篇                    时间  Wed Aug 25 15:18:42 1999                   ──────────────────────────────────         

hem的专栏 3703

HX720数据采集实战:从硬件连接到姿态解析(含避坑指南)

本文详细介绍了HX720高精度ADC芯片在数据采集与姿态解析项目中的实战应用。内容涵盖从硬件电路设计、驱动源码编写与优化,到原始数据处理、校准以及最终姿态角度计算的完整流程,并提供了关键的避坑指南和调试技巧,帮助开发者高效完成从传感器信号到可用姿态数据的转换。

i8j9k0l1的博客 487

Linux 系统裁减指南(LiPS)(第三部分)

6 引导6.1 引导过程概述6.2 几种引导方式  几种引导方式的粗略比较如下表所示。优点缺点DOCDOMFLOPPYHARDDISKNETWORKUSB-HDD容量大,读写可靠  6.3 grub引导器  有了前面生成的Linux内核和根文件系统映像文件后,制作引导盘非常简单。在动手制作引导盘之前,最好先了解一下grub引导器。  Grub是一个通用的多引导加载软件,与较早期多数Linux发行版

1649

Linux USB设备命名规则

有一个USB设备,接到了Linux系统的终端的某个插口上,那么怎么找到这个设备对应设备路径呢?这个USB设备虚拟了多个功能(三个串口和一个网卡), 如何找到对应操作路径呢?

weixin_43132521的博客 1697

ESP32小车DIY:从零搭建无线遥控智能车(附完整代码与避坑指南)

本文详细介绍了如何从零开始DIY一台基于ESP32的无线遥控智能小车。内容涵盖核心硬件选型、电路设计、低延迟ESP-NOW无线通信协议的配置与实战,以及双电机差速控制算法与PWM调速的实现。文章提供了完整的代码示例和关键的避坑指南,旨在帮助开发者快速构建稳定可靠的智能车平台,并为进一步的功能扩展奠定基础。

gamma的博客 468

Linux lilo命令教程:Linux系统的核心载入程序(附实例详解和注意事项)

lilo,全称为Linux Loader,是一个用于加载Linux系统的程序。它可以从软盘、硬盘启动操作系统,并且不依赖于特定的文件系统。lilo的主要任务包括定位内核、识别其他支持程序、加载内存并启动内核。

u012964600的博客 2123

YOLOv8中的C2f模块代码详解

在YOLOv8网络结构中,C2f模块(CSP Bottleneck with 2 Convolutions)是一个关键组件,用于实现跨阶段部分聚合

zzzyyy8的博客 3万+

Linux lilo 命令详解:用于引导加载的程序,它负责在系统启动时加载并启动操作系统内核

lilo(LInux LOader)是 Linux 系统中用于引导加载的程序,它负责在系统启动时加载并启动操作系统内核。与 GRUB 等引导加载程序不同,lilo需要手动配置并在更改配置后运行lilo命令来更新引导加载器的设置。它将引导配置存储在 MBR(主引导记录)或其他引导分区中,并在系统启动时加载内核。lilo主要用于传统的 BIOS 系统中,而在现代 UEFI 系统中,grub更为常见。lilo是一个用于配置和安装 Linux 系统引导程序的命令,适用于传统 BIOS 系统。主要选项包括-v。

yangchuang111213的博客 848

LVGL colorwheel组件教程一(调色板)

【代码】LVGL colorwheel组件教程一(调色板)

摸鱼专家 427

联想开天N70z/N79Z G1d笔记本Win驱动下载

本文介绍了联想开天N70Z/N79Z G1d笔记本在Win11系统下的驱动安装方法。提供了WiFi网卡驱动(RealtekWlan)和显卡驱动(ZX C960 GPU)的详细安装步骤,包括手动更新驱动和卸载流程。驱动安装后成功支持5G WiFi连接并正确识别显卡型号。文中附有系统信息和安装效果截图,同时提供了官方驱动下载地址及备用下载链接。该指南适用于需要为联想开天N70Z/N79Z G1d笔记本安装Win11驱动的用户参考。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 3869

Linux的LILO引导程序,LILO引导装载器详解

LILO(即 LInuxLOader)是最常用的两种 Linux 引导装载程序之一。LILO可以被安装进可引导硬盘驱动器的 MBR或者分区的分区引导记录。它还可以安装在可移除设备上,比如软盘、CD 或USB 钥匙。如果您还不熟悉 LILO,那么在软盘或 USB钥匙上进行实践是好办法,所以我们在例子中就是这么做的。在安装 Linux期间,常常指定 LILO 或 GRUB 之一作为引导管理程序。如果选...

weixin_29923451的博客 1186

GitLab CI/CD .gitlab-ci.yml 关键词(十一):发布版本 release

本篇文章介绍使用GitLab CI/CD 发布一个版本,对外发布。并填写一些发布的信息。

知无涯 4717

linux的lilo,深入Linux的LILO

网络设备名 〉:〈auto〉5.“image=”指定Linux的内核文件。6.“delay=”设定引导第一个映像前的等待时间。7.“disk=”此参数为某一非凡的硬盘定义非标准参数。8.“append=”为内核传递一个可选的参数行,其典型的应用是为不能完全由系 统自动识别的硬盘指定参数,如:append = "hd=64,32,202"9.“label=”此参数为每个映像指定一个名字,以供引导时选...

weixin_36166558的博客 349

Qt Quick/QML入门到精通_专栏demo对应文章目录(目前50个左右demo/长期更新)

自定义图标下拉列表框的效果如下所示:自定义三态按钮的效果如下所示:传送门:53.qt quick-自定义三态按钮、自定义图标下拉列表框_诺谦的博客-优快云博客传送门:59.qt quick-qml调色板(颜色取色器)实现、自定义QQuickStyle样式_诺谦的博客-优快云博客63.qt quick-QML侧边滑动栏(不需要任何图片资源,支持自定义左右方向和大小)_诺谦的博客-优快云博客_qt实现好看侧边栏。...

抵抗时间扭曲,坚持做一件有意义的事 2万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

linux lilo_LInux装箱商(LILO)| 免费和开源软件

linux lilo 力乐 (LILO) LILO is the LInux LOader, the most well-known boot loader for Linux. It is utilized to stack Linux into memory and start the OS. On a machine with the various OS, LILO can be set ...

cumt30111的博客 391

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

linux lilo命令,lilo命令_Linux lilo命令使用详解:安装核心载入开机管理程序

lilo命令用于安装核心载入,开机管理程序。lilo是个Linux系统核心载入程序,同时具备管理开机的功能。单独执行lilo指令,它会读取/etc/lilo.conf配置文件,然后根据其内容安装lilo。Linux lilo已经成为所有 Linux 发行版的标准组成部分。作为一个 较老的/最老的 Linux 引导加载程序,它那不断壮大的 Linux 社区支持使它能够随时间的推移而发展,并始终能够充...

weixin_29589063的博客 610

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Linux的LILO引导程序,LILO引导程序

http://www.bitscn.com/plus/view.php?aid=8248LILO(Linux Loader)是Linux自带的一个优秀的引导管理器,使用它可以很方便地引导一台机器上的多个操作系统。与其他常用的引导加载程序相比,LILO引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多操作系统、网络引导、大硬盘及大内存等诸多棘手的问题。        通常我们谈到...

weixin_35460589的博客 616

linux lilo密码,LILO Security

2、LILO Security在"/etc/lilo.conf"文件中加入下面三个参数:time-out,restricted,password。这三个参数可以使你的系统在启动lilo时就要求密码验证。第一步:编辑lilo.conf文件(vi /etc/lilo.comf),假如或改变这三个参数:boot=/dev/hdamap=/boot/mapinstall=/boot/boot.btime-...

weixin_27713587的博客 416

linux编译lilo,linux中LILO及GRUB配置实例

1.配置LILO是通过编辑/etc/lilo.conf(也可能是/etc/lilo.conf.anaconda文件)使用cat命令打开如下:[root@localhost etc]# cat lilo.conf.anacondaprompttimeout=50default=linuxboot=/dev/hdamap=/boot/mapinstall=/boot/boot.bmessage=/bo...

weixin_35890888的博客 291

LILO-Linux引导程序

LILO(LInuxLoader),即Linux引导程序。LILO是一个在系统启动时运行的程序,它用于选择引导计算机启动的操作系统。

顺其自然~专栏 751

linux卸载LILO命令,Linux lilo命令

Linux lilo命令用于安装核心载入,开机管理程序。lilo(linux loader)是个Linux系统核心载入程序,同时具备管理开机的功能。单独执行lilo指令,它会读取/etc/目录下的lilo.conf配置文件,然后根据其内容安装lilo。语法lilo [-clqtV][-b][-C][-d][-D][-f][-i][-I][-m][-P][-r][-R...][-s][-S][-uU...

weixin_34627088的博客 312

红旗Linux中LILO的配置(转)

红旗Linux中LILO的配置(转)[@more@]   在Linux中,用于实现多个操作系统并存的一个重要文件就是LILO。LILO是Linux Loader的缩写,用于系统装载启动过程中的多重选择。如果您安装了多个操作系统...

ciya3282的博客 153

linux的lilo,深 入Linux 的LILO-嵌入式系统-与非网

---- Linux 的 引 导 可 以 采 用 多 种 方 式, 其 加 载 器LILO(Linux Loader)是 一 个 灵 活 的 引 导 加 载 程 序, 对 其 深 入 的 理 解, 将 有 助 于 我们 方 便 地 处 理 多 重 系 统、 网 络 引 导、 大 硬 盘 及 大 内 存 等 诸 多问 题。一、 LILO 的 引 导 机 制---- 众 所 周 知, 计 算 机 的 ...

weixin_42305377的博客 310

linux lilo,VBird's Linux start system and lilo setup

開機不是只要按一下電源鈕而關機只要關掉電源鈕就可以了嗎?有何大學問?話是這樣沒錯啦,但是由於Linux 是一套多人多工的作業系統,你難保你在關機時沒有人在線上,如果你關機的時候碰巧一大群人在線上工作,那會讓當時在線上工作的人馬上斷線的!那不是害死人了!一些資料可以無價之寶哩!另外,與DOS 環境不同的是, Linux 在執行的時候,雖然你在畫面上只會看到黑壓壓的一片,完全沒有任何畫面,但其實他是有...

weixin_27787297的博客 138
上一篇: 在系统上同时安装nt和Linxu的一个狂easy的方法
下一篇: lilo--实践篇(FAQ)
hem
hem
博客等级 码龄26年 19粉丝 287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值