当前位置:首页 » 操作系统 » 安装多个linux

安装多个linux

发布时间: 2022-10-23 19:28:24

‘壹’ 如何在一台电脑上安装多个linux发行版

多分几个ext3/4分区,依次安装就可以啊
可以使用共同的家目录或者swap
个人感觉虚拟机更方便一些,一个linux挂了不会伤及其他

‘贰’ 怎么在笔记本上安装多个linux

安装一个虚拟机软件就好了,里面你可以安装多个系统。

vmware

‘叁’ 通过pxe启动安装linux系统可以同时安装多个linux版本吗

1. pxe启动时会选择菜单的,可以在菜单里面选择安装不同的操作系统
2. pxe可以针对不同机器的mac地址创建启动脚本,机器启动时,pxe会先按mac地址查找启动脚本,如果没找到才使用默认的启动脚本。这个你可看下syslinux文档。

‘肆’ 如何用U盘制作一个可以安装多个不同版本的Linux系统ISO镜像文件的启动盘

U盘引导多个linux镜像安装,同时支持BIOS和UEFI模式

  • 准备开整

  • 基本步骤

  • 步骤一: 格式化U盘

  • 注意点: bios_grub标记的分区

  • 步骤二: 安装grub到U盘

  • 步骤三: 添加grub菜单

  • 参考文献

  • 前言: 生命不息,折腾不止。在折腾中进步,在踩坑中成长。

    准备开整

  • U盘一枚(4G容量以上,备份好数据,一会可能要重新格式化)

  • 可用的任意操作系统,64位(32位就不要折腾UEFI了)

  • UEFI与ESP预备知识,限于篇幅就不详细介绍了,自己看文档原理

  • USB启动的原理就不多做讲解了,有兴趣的话找找相关的文档,介绍很多,也很详细,跟硬盘引导过程差不多。注意的是BIOS+MBR模式和UEFI+GPT模式是不同的。

    基本步骤

    先说一下我的环境,金士顿16G U盘一个,操作系统是Deepin 2014.3 64bit,基于Ubuntu 14.04,其他类似的系统可以类比。Linux系统本来就使用grub引导(不要在CentOS/RHEL 6及以下版本折腾了,那个是Grub Legacy,已经不维护了),折腾起来要比其他操作系统方便的多,软件仓库就有grub相关的软件包,也不需要单独安装太多东西。Windows下可以用grub2win,原理是一样的。

    步骤一: 格式化U盘

    想要支持UEFI引导,GPT是不可少了,而且GPT是兼容MBR了。所以第一步需要先将U盘格式化为GPT分区,这样efi文件可以和MBR共存,实现UEFI和BIOS双支持。

    如果U盘已经是

    Linux下支持GPT分区的工具: parted, gdisk。大致的步骤就是使用gdisk(命令和操作方式几乎和fdisk完全一样,只是支持GPT),或parted对U盘重新分区,然后标记ESP。如果用gdisk,只要给分区标记EF00编号即可,如果用parted,给分区boot标记即可。命令行就不演示了,很简单,我这边截图使用图形化工具gparted分区,同样结果也是GPT分区。

    图形化的gparted操作也很简单,建立GPT分区表,分区,格式化为FAT32(注: 尽管ESP支持多种分区,但是为了通用性与兼容性还是建议FAT32),标记分区为boot

    这样U盘处理就完成了,使用gdisk或parted显示一下U盘的信息,看到这样的信息就是OK的

    $ sudo gdisk-l/dev/sdb# 根据你的U盘的名字修改dev设备
    GPT fdisk(gdisk)version0.8.8

    Partitiontable scan:
    MBR:protective# <========================= 保护性的MBR,这个是GPT兼容MBR的一种设计
    BSD:notpresent
    APM:notpresent
    GPT:present# <========================= 看这里,已经是GPT了

    Foundvalid GPTwithprotective MBR;usingGPT.# <========== 这里的显示也说明是GPT分区
    Disk/dev/sdb:30736384sectors,14.7GiB
    Logicalsector size:512bytes
    Diskidentifier(GUID):022EE53E-9641-4D28-9394-0826CFA24730
    Partitiontable holds up to128entries
    Firstusable sectoris34,lastusable sectoris30736350
    Partitionswill be aligned on2048-sector boundaries
    Totalfree spaceis4029sectors(2.0MiB)

    Number Start (sector) End (sector) Size Code Name
    1 2048 30734335 14.7 GiB EF00 # <======== 这里很关键,看Code是EF00,想要分区成为ESP必须设置这个标记,如果手工用gdisk别忘了这一步

    $ sudo parted /dev/sdb print
    Model: Kingston DataTraveler 3.0 (scsi)
    磁盘 /dev/sdb: 15.7GB
    Sector size (logical/physical): 512B/512B
    分区表:gpt # <======= GPT分区
    Disk Flags:

  • 数字开始:End大小文件系统Name标志

  • 11049kB15.7GB15.7GB fat32启动,esp# <===== ESP已经设置成功

  • 注意点: bios_grub标记的分区

    这个要特别强调,bios_grub标记的分区必须存在,否则BIOS模式下无法使用。

    有关bios_grub标记的分区说明:https://help.ubuntu.com/community/Installation/UEFI-and-BIOS#Make_a_system_bootable_in_UEFI_as_well_as_BIOS

    这里我简单提及一下这个标记的作用。上面提到过,GPT兼容MBR,如果要让grub在GPT上使用MBR模式安装的话,需要设置这个标记。按照ubuntu官方文档(上面那个文档,想了解详细的话必看!),这个分区有以下几个特点:

  • 1MB容量

  • 不需要格式化

  • 设置bios_grub标记

  • 如果用gdisk, parted, gparted这些工具分区的时候,你会发现总会有一个1MB的剩余空间,就是干这个用的,现在,我只需要给这个剩余空间分区,并打上bios_grub标记就行了(EF02),不用格式化。parted操作也类似

  • sudo gdisk /dev/sdb# 下面可以看到gdisk的操作几乎和fdisk完全一样,熟悉fdisk可以无压力上手GPT fdisk (gdisk) version 0.8.8Partition table scan:

  • MBR: protective

  • BSD: not present

  • APM: not present

  • GPT: presentFound valid GPT with protective MBR; using GPT.Command (? for help): nPartition number (2-128, default 2):First sector (34-30736350, default = 30734336) or {+-}size{KMGTP}:Last sector (30734336-30736350, default = 30736350) or {+-}size{KMGTP}:Current type is 'Linux filesystem'Hex code or GUID (L to show codes, Enter = 8300): EF02Changed type of partition to 'BIOS boot partition'Command (? for help): pDisk /dev/sdb: 30736384 sectors, 14.7 GiBLogical sector size: 512 bytesDisk identifier (GUID): 0086B5EF-81D9-4BD1-816C-AD1EADCD2338Partition table holds up to 128 entriesFirst usable sector is 34, last usable sector is 30736350Partitions will be aligned on 2048-sector boundariesTotal free space is 2014 sectors (1007.0 KiB)Number Start (sector) End (sector) Size Code Name

  • 2048 30734335 14.7 GiB EF00 30734336 30736350 1007.5 KiB EF02 BIOS boot partition # <== EF02对应的就是bios_grub这个标记Command (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING

  • PARTITIONS!!Do you want to proceed? (Y/N): y

  • OK; writing new GUID partition table (GPT) to /dev/sdb.Warning: The kernel is still using the old partition table.The new table will be used at the next reboot.The operation has completed successfully.sudo parted /dev/sdb printsudo gdisk /dev/sdb

  • GPT fdisk (gdisk) version 0.8.8Partition table scan:

  • MBR: protective

  • BSD: not present

  • APM: not present

  • GPT: presentFound valid GPT with protective MBR; using GPT.Command (? for help): nPartition number (2-128, default 2):First sector (34-30736350, default = 30734336) or {+-}size{KMGTP}:Last sector (30734336-30736350, default = 30736350) or {+-}size{KMGTP}:Current type is 'Linux filesystem'Hex code or GUID (L to show codes, Enter = 8300): EF02Changed type of partition to 'BIOS boot partition'Command (? for help): pDisk /dev/sdb: 30736384 sectors, 14.7 GiBLogical sector size: 512 bytesDisk identifier (GUID): 0086B5EF-81D9-4BD1-816C-AD1EADCD2338Partition table holds up to 128 entriesFirst usable sector is 34, last usable sector is 30736350Partitions will be aligned on 2048-sector boundariesTotal free space is 2014 sectors (1007.0 KiB)Number Start (sector) End (sector) Size Code Name

  • 2048 30734335 14.7 GiB EF00 30734336 30736350 1007.5 KiB EF02 BIOS boot partitionCommand (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING

  • PARTITIONS!!Do you want to proceed? (Y/N): y

  • OK; writing new GUID partition table (GPT) to /dev/sdb.Warning: The kernel is still using the old partition table.The new table will be used at the next reboot.The operation has completed successfully.$ sudo parted /dev/sdb printModel: Kingston DataTraveler 3.0 (scsi)磁盘 /dev/sdb: 15.7GBSector size (logical/physical): 512B/512B分区表:gptDisk Flags: 数字 开始: End 大小 文件系统 Name 标志

  • 1049kB 15.7GB 15.7GB fat32 启动, esp 15.7GB 15.7GB 1032kB BIOS boot partition bios_grub # <== 要的就是这个!

  • 至此分区的步骤就完成了。如果你已经是GPT分区了,就不用重新分区了,只要处理成ESP就行了

    步骤二: 安装grub到U盘

    这一步相比上一步已经简单许多了,但还是有一个小坑需要注意。先贴命令:

  • $ sudo mount /dev/sdb1 /mnt -o uid=$USER,gid=$USER # 没什么好说的,挂载U盘使用,加上uid和gid参数只是为了编辑文件不需要sudo而已# grub安装到MBR$ sudo grub-install --target=i386-pc --recheck --boot-directory=/mnt/boot /dev/sdbInstalling for i386-pc platform.Installation finished. No error reported.# grub安装到ESP,特别注意--removable参数,安装到移动设备上一定要用这个参数$ sudo grub-install --target x86_64-efi --efi-directory /mnt --boot-directory=/mnt/boot --removableInstalling for x86_64-efi platform.Installation finished. No error reported.

  • 命令没有任何难度,但是有几个坑需要特别注意:

  • Ubuntu的分包问题grub默认的target是i386-pc,这个target包含在grub-pc这个包,如果你的系统使用BIOS+MBR安装,这个包默认是存在的。x86_64-efi这个target包含在grub-efi这个包,只有你的系统使用UEFI+GPT方式安装这个包才会存在。如果某个target报错,错误信息类似于grub-install:error:/usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.这样的话,就需要安装grub-pc或grub-efi之后再试。

  • 安装到ESP要加–removable这个参数 这个参数专门针对于可移动设备,一定要加

  • bios_grub标记的分区 如果按照上面的分区过程操作了,增加了这个标记的分区,安装grub的时候会自动识别这个标记的分区并成功安装grub,否则报错:

    Installing for i386-pc platform.grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
    grub-install: warning: 无法嵌入。在此次安装中 GRUB 只能通过使用块列表安装。但是块列表是不可信赖的,不推荐使用。.
    grub-install:错误: will not proceed with blocklists.
  • 步骤三: 添加grub菜单

    如果前面都没问题的话,最后就只剩下添加grub菜单了。在/mnt/boot/grub这个目录下,新建grub.cfg配置文件就行了。grub2的语法很复杂,图省事就从网上各种摘抄拼接就行了。比如我把linux发行版的iso镜像都扔到了boot/iso这个目录,于是乎我的grub.cfg成了这样:

  • # path to the partition holding ISO images (using UUID)probe -u $root --set=rootuuidset imgdevpath="/dev/disk/by-uuid/$rootuuid"# define globally (i.e outside any menuentry)insmod search_fs_uuid

  • search --no-floppy --set=isopart --fs-uuid $rootuuid

  • insmod all_video

  • menuentry "Linux Mint cinnamon 64bit ISO" {

  • set isofile=/boot/iso/linuxmint-17.2-cinnamon-64bit.iso

  • loopback loop ($isopart)$isofile

  • linux (loop)/casper/vmlinuz file=/cdrom/preseed/linuxmint.seed boot=casper iso-scan/filename=$isofile noeject noprompt splash locale=zh_CN.UTF-8 --

  • initrd (loop)/casper/initrd.lz}menuentry "Ubuntu Desktop 64bit ISO" {

  • set isofile=/boot/iso/ubuntu-14.04.3-desktop-amd64+mac.iso

  • loopback loop ($isopart)$isofile

  • linux (loop)/casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=$isofile noeject noprompt splash locale=zh_CN.UTF-8 --

  • initrd (loop)/casper/initrd.lz}menuentry "UbuntuKylin Desktop 64bit ISO" {

  • set isofile=/boot/iso/ubuntukylin-14.04.3-desktop-amd64.iso

  • loopback loop ($isopart)$isofile

  • linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noeject noprompt splash locale=zh_CN.UTF-8 --

  • initrd (loop)/casper/initrd.lz}menuentry "Ubuntu Server 64bit ISO" {

  • set isofile=/boot/iso/ubuntu-14.04.3-server-amd64+mac.iso

  • loopback loop ($isopart)$isofile set gfxpayload=keep

  • linux (loop)/install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed iso-scan/filename=$isofile quiet --

  • initrd (loop)/install/initrd.gz}menuentry "Deepin 2014 ISO" {

  • set isofile=/boot/iso/deepin_2014.3_amd64.iso

  • loopback loop ($isopart)$isofile

  • linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt splash locale=zh_CN.UTF-8 --

  • initrd (loop)/casper/initrd.lz}

  • 根据自己的需求增删改改就行了。想进一步美化的话,grub2关于美化的文档也很多,就不赘述了。

    注意:不要使用虚拟机测试,因为虚拟机不能完整模拟主板。因此不一定能引导你的U盘,让你误以为制作失败了。尽可能用真机去测试引导。

    最后,贴一个效果图,可以看到BIOS模式和UEFI都可以引导了

    补充: 稍作美化一下效果,只不过那个从本地硬盘启动还没实现,需要看看别人怎么写的。

‘伍’ 如何在U盘里安装多个Linux操作系统

看你要安装的版本,网上有相关教程的。其实基本上都差不多,只要会grub,把puppy相关文件(vmlinuz、initrd.gz,以及系统sfs文件)复制到u盘,然后安装grub到u盘,编辑grub引导配置文件,添加一个引导菜单项,重启用u盘启动选择puppy引导就可以启动puppy
linux了。
也有一些工具可以将下载的iso映像文件写入u盘制作启动盘实现u盘启动linux系统。

‘陆’ 如何在一台电脑上装两个linux系统,

装第二个linux的时候另分boot和根分区,swap分区可以共用,如果要再装windows,最好的办法是把两个linux的引导程序安装在各自的boot分区里,再把boot分区的头512个字节导出来,放在windows分区的磁盘里,重装windows系统后把他们拷到C盘下,再在boot.ini文件里加上
c:\linux1.lnx="启动第1个linux"
c:\linux2.lnx="启动第2个linux"
当然用grub
for
dos也是可以的
需要注意的是:不要再删除已经存在的扩展分区(扩展分区下的分区从hda5开始),因为删除后linux的分区序号就变了,比如hda8变成hda7,linux系统就起不来了。

热点内容
win7c盘加密 发布:2025-05-14 15:04:49 浏览:510
dm码编程 发布:2025-05-14 15:03:56 浏览:404
apache加密 发布:2025-05-14 14:49:13 浏览:969
安卓什么软件苹果不能用 发布:2025-05-14 14:49:03 浏览:771
jsoupjava 发布:2025-05-14 14:38:00 浏览:887
影豹选哪个配置最好 发布:2025-05-14 14:28:50 浏览:255
定期预算法的 发布:2025-05-14 14:24:08 浏览:894
interbase数据库 发布:2025-05-14 13:49:50 浏览:691
微商海报源码 发布:2025-05-14 13:49:42 浏览:347
分布式缓存部署步骤 发布:2025-05-14 13:24:51 浏览:611