• 系统启动方式


    http://itbbs.pconline.com.cn/diy/15657192.html  磁盘分区介绍的比较清楚

    http://blog.sina.com.cn/s/blog_6b94d5680101pn4a.html  initramfs与vmlinuz两个文件详解

    这里简单介绍下什么是MBR?GPT?MBR(主引导记录)就是我们常用的分区方式,最大支持2.19TB(2的32次方*512byte),可以划分4个主分区或3个主分区+1个扩展分区。大于2.19T的硬盘就会无法识别全部容量,所以第一次使用3T硬盘的童鞋估计都遇到刚才提及的问题。
    一般使用BIOS的x86架构PC,3T硬盘做系统盘(主盘)就必须使用MBR分区方式。从Vista、win7时代开始,为了解决硬盘容量限制问题,增加了GPT(GUID分区表)。GPT最大支持9.4ZB(1ZB=1024PB,1PB=1024EB,1EB=1024TB,即9.4ZEB=94亿TB)容量,支持128个主分区(window限制,有资料介绍实际无限),但使用GPT分区方式的硬盘只能作为数据盘(从盘)使用,并且注意xp 32位是无法识别GPT分区形式的数据盘的。
    另外 ,使用EFI(intel推出的替代BIOS的升级方案,我们理解为一种较新的BIOS)的苹果机,或者基于Itanium的window机(一般用户不必理会是什么),则可以把系统盘使用GPT分区形式。还有一种,我们常用的x86架构的pc,由2011年出的P67、H67、890GX等使用的UEFI BIOS的主板则可支持系统盘使用GPT分区形式。(具体有哪些主板支持,这里就不讨论了)
    总结,一般大家使用硬盘,是BIOS+MBR,大多数正在使用win7的童鞋可以考虑数据盘(从盘)使用GPT分区形式的3T盘。UEFI BIOS的新主板可以考虑系统盘(主盘)直接使用GPT,安装win7 x64。苹果机则是EFI+GPT。
    当我把3T硬盘选择MBR分区形式后,会自动变成一个2T区域+一个746G区域。

    与支持最大卷为2 TB(Terabytes)并且每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的MBR磁盘分区的样式相比

    GPT磁盘分区样式支持最大卷为18 EB(Exabytes)并且每磁盘的分区数没有上限,只受到操作系统限制(最初规划硬盘分区时,留给分区表的空间决定了最多可以有多少个分区,64版Windows限制最多有128个分区,这也是UEFI规定的分区表的最小尺寸)。

    因为现在普遍的电脑都在2TB以内,但是使用的预装win8的新本子却格式为GPT,这并不方便与我们的U大师安装,因U大师安装以MBR分区legacy引导为主(大部分第三方U盘启动都未支持UEFI引导)所以预装win8的新本子要改成legacy引导,才可以设置U盘启动所以我们要在BIOS处改成“禁用UEFI,启用legacy”。

    有三个标准可以选择:基础的标准分区(针对单磁盘而言),多磁盘的raid分区,多磁盘的lvm

    Linux系统一般需要三个分区:Boot分区、根分区、swap分区。其中,必不可少的是根分区,boot分区和swap分区可有可无。考虑到内存可能不足,一般保留swap分区。
    分区表只有64bytes,最多只能分成四个分区,其中扩展分区最多只能有一个。所以推荐的分区方法是P+P+P+E,这样系统没有用完的空间可在系统安装完成后根据需要自行分配。如果分区方式是P+P+P+P,那系统多余的空间将无法利用。

    linux 是一个指令,它告诉 grub2 程序:“请使用后面给出的这个内核”,于是名为“/boot/vmlinuz-XXX”的内核将被载入内存,并读取“root=UUID=XXX”这个分区的一些必需的文件。【这里传入的内核参数root=UUID=XXX 也可以用 /dev/ram0 这种格式,这里这个路径 是从linux角度出发】

    initrd /boot/initrd.img-XXX
    initrd 也是一个指令,意思是:先用名称为“/boot/initrd.img-XXX”的文件,在内存中构造一个“虚拟”的根文件系统,以便于内核检测完硬件信息后载入必需的模块等等。
    其实这个 initrd 也可以认为是内核的一部分,只是为了保持 vmlinuz 的简洁而分离出来的,有的内核甚至根本不需要这个东东

    kernel是什么以及有哪些功能相信大家都很清楚,我就不多说了。这里主要介绍ubuntu10.04上安装的相关软件包、文件、目录以及kernel的配置方法。
    至于initrd文件是干什么用的呢?
    大家只要做一个简单的实验就可以明白了:在开机的GRUB命令行上去掉initrd这一行,然后按CTRL+x启动,过会你会发现屏幕出现“kernel panic”的提示。
    为什么会这样呢?这是因为为了减小kernle文件(vmlinuz)的大小和增强灵活性,现在的发行版如ubuntu默认将硬盘接口卡如IDE,STAT,SCSI的驱动程序以模块(modules)的形式
    放在initrd文件中,GRUB中去掉initrd这一行意味着initrd中的modules没有被加载kernel就不能识别该硬盘更别提挂载上面的根文件系统了。
    initrd文件的功能主要有两个:
    1、提供开机必需的但kernel文件(即vmlinuz)没有提供的驱动模块(modules)
    2、负责加载硬盘上的根文件系统并执行其中的/sbin/init程序进而将开机过程持续下去【内核先以initrd /boot/initrd.img-XXX 的内存盘为根文件系统,再去加载硬盘上的根文件系统】

    GRUB将kernle加载到内存并执行,kernel在运行的后期会读取并执行initrd文件中的init脚本文件并按照其中命令逐行执行,所以要掌 握initrd的作用和硬盘上的根文件系统加载过程,全面解析init文件是很重要的。在本文的第二部分,我会将/boot/initrd文件打开,逐行 解读init文件.

    bios+mbr

    efi+gpt

    uefi+gpt

    pxe启动

    u盘启动

    光盘启动

    img文件,iso文件,gho文件

    http://www.iteedu.com/os/grub/grubdiary/10.php  grub相关命令详解

    grub legacy相关命令

    用cat (hd0,0)/tab键试分区

    help cat

    help root

    help kernel

    help initrd

    help boot

    help chainloader

    cat指令是用来查看文件内容的,有时我们不知道Linux的/boot分区,以及/根分区所在的位置,要查看/etc/fstab的内容来得知,这时,我们就要用到cat (hd[0-n],y)/etc/fstab 来获得这些内容;注意要学会用tab键命令补齐的功能;
    grub> cat (     按tab 键会出来hd0或hd1之类的;
    grub> cat (hd0, 注:输入hd0,然后再按tab键;会出来分区之类的;
    grub> cat (hd0,6)

    --------------------------------------------

    grub leagcy

    DOM kernel 2.6.2X

    root (hd0,1)
    kernel /boot/bzImage root=/dev/ram0 rw
    initrd /boot/initrd.boot
    savedefault fallback

    DOM kernel 2.6.2X backup

    root (hd0,2)
    kernel /boot/bzImage root=/dev/ram0 rw
    initrd /boot/initrd.boot
    savedefault 0

    --------------------------------------------

    以下是grub2命令行相关命令与概念

    lspci
    terminal_input
    terminal_output

    没有参数时,列出所有设备
    ls
    有参数时,列出此设备下的文件
    ls (hd0,msdos5)/root/
    ls (hd0,msdos3)/initramfs-4.0
    ls (hd0,msdos3)/vmlinuz-4.0

    linux (hd0,msdos3)/vmlinuz-4.0
    initrd (hd0,msdos3)/initramfs-4.0

    显示正常的菜单
    normal

    没有参数时,列出所有环境变量
    set

    先安装了windows2003,用了两个主分区,hd0,0与hd0,1

    再安装了fedora workstation 22 用了一个主分区是fedora的boot分区(hd0,2),第4个分区为扩展分区,5分区是fedora的根分区(hd0,4),6是fedora的swap分区(hd0,5),

    并且安装了grub2 到磁盘的mbr里,即磁盘的第一个扇区,而不是启动分区的第一个扇区。

    装完之后,没有win2003的启动菜单,这是用了两种方法,grub命令行与在系统里添加菜单项,如下

    后来又安装了centos-6.5-x86_64-minimal用了三个分区,即(hd0,6)boot,(hd0,7)根分区,(hd0,8)swap分区。

    结果将grub leagcy 安装到了mbr替换了原先的grub2,进入到grub leagcy的界面,用cat (hd0,1)/tab键逐个尝试来查看win2k3所在的分区,最后用下面的命令行可以正常启动win2003

    但是好像不能启动fedora 22,因为是4.0的内核。最后终于通过uuid启动成功了。

    cat (hd0,4)/etc/fstab  查看根分区的uuid号,填入下面的root=后面

    kernel (hd0,2)/vmlinuz-4.0  ro  root=UUID=c492851e-4b55-4966-adc3-30688c4a3a42

    initrd (hd0,2)/initramfs-4.0

    boot

    最后结论是只要在不破坏每个系统的启动分区的情况下,磁盘的首扇区可以随意更改为想要的boot loader,


    grub2时
    安装双系统时
    安装第二个linux时,选择空闲分区,安装完后,启动时只能看到linux的grub启动界面,不能启动windows,方法有两种
    一是在grub命令行手动启动windows
    二是在进入到linux里编辑文件,添加菜单项
    grub>set    看到默认启动linux分区,并无windows相关选项
    还需要知道windows启动分区的设备名
    即通过
    grub>ls
    来查看具体的设备名
    于是编辑vi /boot/grub2/grub.cfg
    添加菜单项即可
    menuentry "win2003" {
        set root='hd0,msdos1'
        chainloader +1
        boot
    }

    调用另一个启动器,如
    chainloader (hd0,1)+1
    调用第一硬盘第一分区引导扇区内的启动器,可以是windows或linux的启动器


    安装了centos-6.5-x86_64-minimal
    下面的代码好像是grub leagcy的
    title win2003
    rootnoverify (hd0,5)
    makeactive
    chainloader +1
    boot


    相关文件与目录
    /etc/grub.d/
    /etc/default/grub
    /boot/grub/grub.cfg
    /usr/lib/grub/i386-pc/

    Grub 命令行工作过程。计算机启动后,BOIS先做自检等工作,然后BOIS会加载磁盘的第一扇区(512字节)到内存某处,然后跳转到该处执行代码,这段代码就是上面所说的Grub写入MBR的部分,这段代码有Grub第二部分在磁盘上的位置信息,这段代码就是根据此信息加载第二部分,第二部分才是Grub的核心,第二部分会读取/boot/grub/grub.conf配置文件,然后根据此配置文件弹出用户界面,你看到的那些菜单选择项就是这么来的,当然,你也可以按字母键‘C’进入命令行方式。

    GRUB支持直接和链式装载的引导方法。GRUB能用于几乎所有操作系统,绝大多数流行的文件系统,以及几乎所有的系统BIOS所能识别的硬盘。 GRUB的特性 注意:如果LILO已经被安装,并且是当前的系统引导装载程序,那并没有必要为了使用GRUB而删除它。
    清除GRUB在MBR的残留信息- Linux系统相关- ELM’s Blog
    估计大部分Linux初学者会遇到把Grub安装到MBR 上去了,现在不想用Linux,直接用分区工具把Linux分区给删除了,结果导致系统无法启动,具体恢复方法有很多,但是有的时候也很顽固: 1、如果能用光盘启动,那么使用光盘启动到dos,使用fdisk /mbr就搞定了。

      是不是想让系统直接启动到Windows,不出现Linux的Grub(或LILO)引导界面(Solution 1~3),或者是在Windows中删除了Linux分区后无法正确启动Windows,而停留在“grub>”提示符处,怎么办 (Solution 4)? 请往下看,这里给你提供几种实用的方法:
      Solution 1
      用DOS命令fdisk恢复主引导扇区MBR(Main/Master Boot Record)
      ---用win98的引导盘或DOS引导盘引导系统到纯DOS提示符下,执行:”fdisk /mbr”即可。
      Solution 2
      在Linux系统中,恢复MBR。(如果你还能登陆到Linux系统中的话)
      ---在终端的命令提示符后输入: “dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1″
      注意,其中bs(buffer size)是指重写的字节数。为什么不是512呢?主引导扇区是一个扇区(512字节呀),因为我们只是想通过扇面的命令修复系统MBR的引导或删除 Grub/LILO引导;而不是恢复整个主引导扇区。所以我们只把主引导扇区的备份文件boot.NNNN的前446个字节重写入主引导扇区。 boot.NNNN是我们在安装Linux之前整个主引导分区的备份。如果我们把512个字节全部写入主引导扇区就可能会把安装了Linux后改变了的硬 盘DPT表也破坏掉。那就坏事了!!! (MBR的512字节中前446字节为引导程序,紧跟着后面64字节为分区表,最后面2个字节为结束标记)
      Solution 3
      如果你的fdisk不好使,或者Linux已经翘翘了,不用着急,上帝关上了所有的门,但是他一定会为你留下一扇窗户,下面的工具可意帮助你:
      Clear MBR 0.9:http://jelle.go.nease.net/resource/clsmbr.exe
      ---直接运行执行“Clear MBR”即可,本人有测试过,绝对安全,敬请放心使用。
      Solution 4
      Linux的分区已经被你从Windows中删除,系统启动后停在“grub>”提示符处。(方法一:按照Solution 1的方法,方法二:如下)
      ---在“grub>”提示符后输入:“rootnoverify (hd0,0)” 回车。 //将第一块硬盘(hd0)的第一个分区(0)设为根分区/root设备,但不加载文件系统。
      ---在“grub>”提示符后输入:“chainloader +1” 回车。//将启动引导权转交给当前分区的首扇区(Windows系统所在分区的首扇区)。
      ---在“grub>”提示符后输入:“boot” 回车。系统将启动Windows。如果不成功,则表明 (hd0,0) 不是 Windows 系统所在分区,再从第一步开始试一下“root (hd0,1)/root (hd0,2)/root (hd0,3)/…”,总之这样一定可以引导启动你的Windows系统。
      ---好了,进入Windows了,请采用Solution 3的方法,轻松搞定!

    http://blog.csdn.net/kyokowl/article/details/7360778  bootloader相关

    http://bbs.chinaunix.net/thread-2112551-2-1.html

    http://www.cnblogs.com/wanyao/archive/2011/09/23/2186572.html

    pxelinux.0文件详解

    yum install  syslinux安装这个包后才有pxelinux.0这个文件

    vmlinuz文件详解

    initrd.img文件详解

    stage2.img文件详解

    事件回放

    因有一台老式笔记本想要安装系统,光驱刻盘麻烦,u盘引导不支持,看到可以pxe启动,因此去实施,也算复习一下pxe项目

    piii cpu,256M内存,搞了半天硬盘坏着,怪不得一到格式化磁盘时,报错找不到驱动器。最后放弃。

    两台机器

    server端:cenots6.6-64-minimal  tftp,dhcp,

    client端:pxe

    关闭iptables
    chkconfig --level 2345 iptables off
    关闭selinux
    vi /etc/sysconfig/selinux
    重启服务器
    reboot

    如果是http方式安装软件包,就不需要nfs了,否则需要nfs

    选用http方式时,填写两个内容

    1.ping mirror.symnds.com  得到ip地址63.245.196.124

    2.填入这个路径  /distributions/CentOS-vault/4.5/os/i386/

    yum install dhcp
    yum install nfs-utils
    yum install tftp-server
    vi /etc/xinetd.d/tftp
    service xinetd start

    cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
    vi /etc/dhcp/dhcpd.conf
    cd /var/lib/tftpboot/
    mkdir pxelinux.cfg
    yum install mlocate
    yum install syslinux
    updatedb
    locate  pxelinux.0
    cp /usr/share/syslinux/pxelinux.0 ./

    一定要拷贝32位的源文件,一开始不知道,弄了个64,结果在boot:界面时,报错提示才知道。选用的是centos-4.5的源,新的源,有些驱动可能不支持。

    http://mirror.symnds.com/distributions/CentOS-vault/4.5/os/i386/CentOS/base/


    cp /mnt/isolinux/vmlinuz ./
    cp /mnt/isolinux/initrd.img ./
    cp /mnt/isolinux/isolinux.cfg pxelinux.cfg/default

    将disable改为no
    vi /etc/xinetd.d/tftp

    注释掉这两行
    #option domain-name "example.org";
    #option domain-name-servers ns1.example.org, ns2.example.org;

    修改成下面的
    # A slightly different configuration for an internal subnet.
    subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.6 192.168.1.8;
      option routers 192.168.1.3;
      allow bootp;
      allow booting;
      next-server 192.168.1.112;
      filename "/pxelinux.0";
    }

    filename中 一定是/pxelinux.0,不能有其它,否则可能出现下面报错

    停留在这里
    could not find kernel boot image
    boot:

    正常情况下到boot这里时,回车即可

    否则即使输入vmlinuz,启动一段时间后,还是出现下面报错,最后崩溃不能启动。
    VFS: Cannot open root device "null(0)" or unknown-block(253,0)
    Please append a correct "root=" boot option; here are the available partitions:
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(253,0)

    镜像

    http://patch.ikuai8.com/img/iKuai8_2.4.0_Build20150428-13_47.img.rar

    http://m0n0.ch/wall/downloads/generic-pc-1.8.1.img

    工具

    Roadkils Disk Image    http://www.roadkil.net/program.php?ProgramID=12

    win32 disk imager    http://sourceforge.net/projects/win32diskimager/      A tool for writing images to USB sticks or SD/CF cards

    physdiskwrite

    winimage          http://www.winimage.com/download.htm

  • 相关阅读:
    mybatis配置
    mybatis 多表查询 与配置
    Maven中资源导出问题解决方案--pom.xml配置
    【macOS】Mac App Store 无法 更新/下载
    【macOS】删除 Mac 上的 Office 许可证文件
    【前端】JavaScript学习笔记(一)——快速入门
    【前端】CSS3学习笔记(五)——定位
    【前端】CSS3学习笔记(四)——浮动
    【前端】CSS3学习笔记(三)——盒子模型
    【macOS】清除Finder 「前往」(⌘
  • 原文地址:https://www.cnblogs.com/createyuan/p/4454844.html
Copyright © 2020-2023  润新知