https://www.cnblogs.com/Chinasf/archive/2010/05/06/1728840.html    【Ubuntu 下挂ISO到虚拟光驱的方法

各种方法参考如下论坛: http://wiki.ubuntu.org.cn/%E7%A1%AC%E7%9B%98%E5%AE%89%E8%A3%85LiveCD

转载如何在ubuntu系统内安装ubuntu

硬盘安装LiveCD

 
DVD 安装 LiveCD 试用 LiveCD 安装 U 盘安装 Wubi 安装 硬盘安装LiveCD

前言

更新的说明:--Xiaodan 2016年1月8日 (五) 18:42 (CST)

本文主要适用于Linux下本地安装Ubuntu系统,其原理也可借鉴于其他linux操作系统。 同时,本文主要讨论BIOS下的安装,EFI请直接查看“EFI”一节。

如果您不知道您的PC适用于哪一类,建议优先尝试BIOS引导下的操作,或求助他人。

设置iso文件

说明:以下内容均为假设情况,在实际操作中需要灵活掌握 假如我们把iso文件放在挂载磁盘下进行安装 ,挂载磁盘的位置为/media/disk/,其中/media/disk/的分区格式为vfat,也即FAT32 .其中/media/disk/的具体情况视各自具体情况而定.一个重要的前提是必须保证该挂载磁盘被fstab有效挂载 接下来我们要把该iso和其中的.disk和casper下的vmlinuz和initrd.lz释放出来,保存至/media/disk/ 在转移到/media/disk/下前请检查下/media/disk/的剩馀空间,剩馀空间至少要有750M。如果剩馀空间不多可考虑删除多余的文件。 首先将iso文件转移到/media/disk/下,进入存放iso文件的目录下

sudo mv *.iso /media/disk/

然后挂载iso,并拷贝到 /media/disk/

sudo mkdir /mnt/live ;
cd /media/disk ;
sudo mount -t iso9660 -o loop,utf8 *.iso /mnt/live/ ;
sudo cp -r /mnt/live/.disk  /media/disk/ ;
sudo cp /mnt/live/casper/vmlinuz  /media/disk/ ;
sudo cp /mnt/live/casper/initrd.lz  /media/disk/

请注意,较新版本的ubuntu安装文件中,vmlinuz更名为vmlinuz.efi,用于efi启动模式,具体见EFI。 需要将该文件重命名,去掉efi后缀。

 mv /media/disk/vmlinuz.efi /media/disk/vmlinuz 

如果什么重要的文件请在系统重启前及时备份。

设置启动项(镜像、.disk、vmlinuz和initrd.lz 四个文件都在u盘等设备上时)

grub(类似CentOS和ubuntu旧版本)

可以先

locate menu.lst

找出该文件的位置,之后进行修改

请灵活更改以下代码。

注意,root (hd1,0)请根据自己的实际情况设置(应该为电脑的另一块硬盘或者U盘)。 另外,早期版本的Ubuntu为initrd.gz,新版本的Ubuntu为initrd.lz(本人非计算机专业,估计应该是内核相关的文件)

title Ubuntu x.xx LiveCD
root (hd1,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-x.xx-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd /initrd.lz
boot

grub2

在GRUB 1.98 Ubuntu10.04测试

默认安装情况下打开grub2启动菜单的方法:

grub2启动菜单默认是隐藏的,除非您改动了/etc/default/grub中的设置。在开机启动时一直按Shift键,直到grub2启动菜单出现,这时候可以按上下方向键选择一个项目

在/etc/grub.d/40_custom(系统自带)中进行编辑,或者自行新建50_ubuntu进行编辑,应该注意的是,这些文件必须是可执行的,才能够由update-grub写入二进制文件,因此必须赋予可执行权限:

sudo chmod +x /etc/grub.d/40_custom

在40_custom

#!/bin/sh
exec tail -n +3 $0

之后的位置添加代码,这里的ubuntu-10.04-desktop-i386.iso镜像文件是放在U盘(另外一块硬盘)的根目录下。

menuentry "Ubuntu 10.04 LiveCD" {
set root='(hd1,1)'
loopback loop (hd1,1)/ubuntu-10.04-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd (loop)/casper/initrd.lz
boot
}

其中,menuentry "xxx" { }为固定语法,必须要写。注意,{ }内的行与行之间不能有空行,必须是连续的。 loopback为grub2的新增功能,用于载入镜像文件。 grub2中,kernel命令已经被替换为linux;root已经被替换为set root hdx,x。

请注意,做出以上更改后,必须要执行grub-update,使更改写入启动文件。

sudo update-grub

EFI

1.按“设置iso文件”小节的说明拷贝文件。 2.重启,按下适当按键,进入efi模式。 3.选择vmlinuz.efi的路径,并启动。 4.安装,见“安装”小节。

如何确定ISO位置

grub和hd0,x是硬盘安装的关键问题,解决了这2个问题,硬盘安装Ubuntu操作系统就成功了一半! 使用fdisk查询本机硬盘分区状态,例如本人的:

sudo fdisk -l

结果如下

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00019d35
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          12       96358+  82  Linux swap / Solaris
/dev/sda2              13         302     2329425   83  Linux
/dev/sda3   *         303         995     5566522+  83  Linux
/dev/sda4             996        9729    70155855    c  W95 FAT32 (LBA)

第一行显示了硬盘大小为80G,后4行说明了硬盘分区状态,带有*的是grub指定的内核位置,那么/dev/sda3在grub中是如何表示的呢? 在grub中表示为(hd0,2) ,也即分区号减一,我们现在把ubuntu的iso以及引导文件放在/dev/sda4的根目录下,/dev/sda4分区格式为fat32,那么,如果想引导grub启动/dev/sda4下的iso文件那么就要将grub引导到/dev/sda4盘下,也即(hd0,3) 对应关系

/dev/sda1                hd0,0
/dev/sda2                hd0,1
/dev/sda3   *            hd0,2
/dev/sda4                hd0,3

如果我们使用USB来安装ubuntu怎么办呢? 首先挂载usb到系统中使用fdisk查看usb磁盘分区状态,例如:

Disk /dev/sdb: 2118 MB, 2118123520 bytes
127 heads, 32 sectors/track, 1017 cylinders
Units = cylinders of 4064 * 512 = 2080768 bytes
Disk identifier: 0x00000000
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        1018     2068448    b  W95 FAT32
Partition 1 has different physical/logical endings:
     phys=(1023, 126, 32) logical=(1017, 119, 32)

然后拷贝ubuntu的iso以及引导文件放在/dev/sdb1的根目录下,在/media下新建usb文件夹然后让系统自动挂载usb ,修改fstab,下面的仅做参考:

sudo nano /etc/fstab

添加:

#/dev/sdb1
/dev/sdb1   /media/usb vfat defaults    0      0

然后修改grub,引导位置即(hd1,0)

在grub命令行下确定ISO位置

在grub命令行下输入

root (hd0,0)

在返还回显时可知道hd0,0属于什么格式的分区, 然后使用kernel+Tab键查询是否有启动文件的存在。 即可查看所有硬盘以及分区。 值得注意的是,使用grub 1.98版本会将分区显示为 (hd0,msdos1) 而不是 (hd0,1)

安装

重启系统,在启动时选择Ubuntu 9.10 LiveCD启动项进入系统。 需要补充重要的一点:在点击桌面的安装之前,必须先umount isodevice

sudo umount -l /isodevice

具体安装方法和以前版本基本一致。或者参考Ubuntu8.04安装篇一文

如何安装ubuntu系统的更多相关文章

  1. 2016031901 - U盘安装ubuntu系统

    使用U盘安装ubuntu系统 01.进入u盘安装 个人使用的是闪迪U盘安装 02. 个人重装ubuntu 03.进入ubuntu安装界面 04.进入语言界面 05.准备安装ubuntu 06.ubun ...

  2. [置顶] 使用U盘安装ubuntu系统

    使用U盘安装ubuntu系统 在网上找了很多教程,都不起效,提示:“从光盘上读取数据出错”. 总结出了几个关键点. 首先,版本,Ubuntu 12.04 Server,一般的U盘安装都会报:“从光盘上 ...

  3. 安装ubuntu系统及ubuntu安装Python的几点心得

    一.安装ubuntu系统 1.ubuntu系统是Linux系统的一种,和centos差别不大,但是个人还是建议大家安装ubuntu,它更适合国内使用习惯,换句话说更亲切. 2.安装方法不再赘述,网上有 ...

  4. U盘上安装Ubuntu系统 便捷式系统 - 赖大大

    简单介绍: U盘可以作为电脑的磁盘使用,在U盘上安装Ubuntu系统,只要有电脑,就可以轻松打开自己的系统, 方便又快捷,非常适合出差工作,学习使用. 另外,插入U盘后,需要我们就入电脑的Blos模式 ...

  5. 安装ubuntu系统 ——分区

    安装ubuntu 系统主要分四个区 目录 建议大小 格式 描述 / 10G-20G ext4 根目录 swap <2048M swap 交换空间 /boot 400M左右 ext4 Linux的 ...

  6. VirtualBox虚拟机安装ubuntu系统(图文详解)

    不多说,直接上干货! 想简单说下,想必大家有的喜欢玩一下linux操作系统,但是又不想实际安装在物理机上.那我们就需要用到虚拟机了,这里我们介绍一下如何用VirtualBox安装ubuntu的方法. ...

  7. 使用VMWare12.0安装Ubuntu系统

    使用VMWare12.0安装Ubuntu系统 Vmware12的虚拟机的文档说明: http://pubs.vmware.com/workstation-12/index.jsp#com.vmware ...

  8. win10安装ubuntu系统出现的一些问题以及解决方案

    前言 在win10系统进行安装新的ubuntu环境的时候遇到的一些问题,以及解决方案,供以后参考. 准备 从ubuntu官网下载最近版本的ubuntu系统,Ubuntu最新版本下载地址 操作系统:wi ...

  9. 用VirtualBox代替VMWare安装Ubuntu系统图文教程总结

    文章目录 为什么使用VirtualBox,而不是VMWare? 图文教程 安装VirtualBox 下载Ubuntu镜像 新建虚拟机 安装Ubuntu系统 总结 为什么使用VirtualBox,而不是 ...

随机推荐

  1. [SF] Symfony 标准 HttpFoundation\Request 实现分析

    使用方式 /** * 如果直接示例化 Request 默认是没有参数的,可以自己传入 * 本方法将 PHP 超全局变量作为参数然后实例化自身(Request)进行初始化. */ $request = ...

  2. java使用c3p0连接mysql,写中文数据乱码的问题

    此文说的乱码,是指所有中文的字符都变成了?. 首先,网上普遍搜索到的解决方案都是告诉你要在数据库连接字符串里面增加编码的定义,完整的连接字符串如下: url="jdbc:mysql://12 ...

  3. UWP简单测试

    随便写下,试试.Net Core与UWP开发,后台WCF XAML <Page x:Class="App3.MainPage" xmlns="http://sche ...

  4. Java IO、NIO、AIO知识总结

    本文主要讲述下自己对IO的理解,对IO的用法和细则可能没有顾虑到. 本文的理解基于以下几篇文章,他们对各自部分都讲的很细,对我理解IO提供了很大帮助. https://www.cnblogs.com/ ...

  5. python day03笔记总结

    2019.3.29 S21 day03笔记总结 昨日回顾及补充 1.运算符补充 in not in 2.优先级 运算符与运算符之间也有优先级之分 今日内容 一.整型(int) py2 与 py3 的区 ...

  6. 寻找遗失的tags

    现象:查询数据库,存在tags:{} 的字段,但是api查询时,不存在tags字段 日志定位Sample的init方法中对resource_metadata的扁平处理: 3.对应方法分析 在ceilo ...

  7. ToastUtils 工具类

    package com.example.grenaderose.redthunder.utils; import android.content.Context; import android.os. ...

  8. Appium Capabilities 详解(Android适配/IOS后续再补充)

    Appium 关键字 关键字 描述 实例 automationName 你想使用的自动化测试引擎 Appium (默认) 或 Selendroid platformName 你要测试的手机操作系统 i ...

  9. c/c++一维数组简单介绍

    定义:同一种类型数据的集合 通俗的讲就是,将多个同一种类型的数据按一定的内存顺序写在一起. 注意我的几个关键字“多个”,“同一种”,“一定的内存顺序”.如果理解了这几个关键词,说明你的数组已经掌握了. ...

  10. Vue-input框checkbox强制刷新

    在引用input框的checkbox属性时,选中后会出现数据已经刷新,checkbox选中状态不会改变.这时在事件触发后可以调用this.$forceUpdate(),强制刷新页面解决这个问题. in ...