您尚未登录。

#1 2020-05-12 12:18:59

beginner
会员
注册时间: 2019-10-07
帖子: 256

[已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

我是先在window系统分出一个d盘,然后直接格式化这个盘并把系统安装在里面。
linux和window可以正常启动,但需要在每次启动的时候设置启动项(当然,如果你一直只启动某个系统则只需要设置一次)。
//删除了之前给出的一部分虚假的fdisk -l信息
注意:上面的fdisk -l不是本机的真实信息,是从网上复制的。只是想说明,我是直接把系统安装在sda5(包括sda5)以下的地方。上面是window的分区
抱歉,实际上上面fdisk -l给出的信息中system是真实的(/dev/sda5(包括sda5)以下)
以下是真实的fdisk -l信息

Disk /dev/sda: 238.49 GiB, 256060514304 bytes, 500118192 sectors
Disk model: KINGSTON RBUSNS8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: CBE470B0-3EE9-414E-BC3C-1B0585AC01CA

Device         Start       End   Sectors   Size Type
/dev/sda1       2048   1085439   1083392   529M Windows recovery environment
/dev/sda2    1085440   1290239    204800   100M EFI System
/dev/sda3    1290240   1323007     32768    16M Microsoft reserved
/dev/sda4    1323008 300888063 299565056 142.9G Microsoft basic data
/dev/sda5  300888064 426717183 125829120    60G Linux filesystem
/dev/sda6  426717184 496971775  70254592  33.5G Linux filesystem
/dev/sda7  496971776 497586175    614400   300M EFI System
/dev/sda8  497586176 500118158   2531983   1.2G Linux swap

我是这么创建grub引导的

mount /dev/sda7 /mnt/boot/efi  //这是在未进入系统前的操作
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg

/etc/default/grub这文件因为他人提供了解决方法,我编辑过了,详情已经贴在下面的回复里了

最近编辑记录 beginner (2020-05-12 17:58:41)

离线

#2 2020-05-12 12:34:53

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

把词儿拼对

取决于你使用的boot方案,总的来说就是bootloader会给你一个界面让你选(注意我说的bootloader指的是具有此功能的一段程序,你细品)


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#3 2020-05-12 12:36:26

jy6c9w08
会员
注册时间: 2020-04-10
帖子: 26

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

参考wiki  探测其他系统 如果你使用的是grub
https://wiki.archlinux.org/index.php/GR … B.E7.BB.9F

离线

#4 2020-05-12 12:42:09

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,447
个人网站

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

你应该使用的是 UEFI 引导。这样的话,你看屏幕上的提示(或者查询你的机型的手册)按键进入 boot menu 就可以选择进入哪个系统了。
引导到引导器之后,部分引导器(如 grub)也可以引导到多个系统。

Edit: 好吧,你用虚假的信息骗人……请提供真实的信息,否则无法判断。

离线

#5 2020-05-12 13:08:57

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

依云 说:

你应该使用的是 UEFI 引导。这样的话,你看屏幕上的提示(或者查询你的机型的手册)按键进入 boot menu 就可以选择进入哪个系统了。
引导到引导器之后,部分引导器(如 grub)也可以引导到多个系统。

Edit: 好吧,你用虚假的信息骗人……请提供真实的信息,否则无法判断。

也没有骗人,你没认真看罢了。一开始就意思很明显了,企图获得一个简单的说明,然而题主没有意识到x86体系自由度过高,无法给出这样的说明。这是一个典型的too board的提问。


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#6 2020-05-12 13:26:27

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,447
个人网站

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

xtricman 说:

也没有骗人,你没认真看罢了。一开始就意思很明显了,企图获得一个简单的说明,然而题主没有意识到x86体系自由度过高,无法给出这样的说明。这是一个典型的too board的提问。

不认真的提问当然没认真看了。

离线

#7 2020-05-12 15:39:11

primes
会员
注册时间: 2015-07-29
帖子: 46

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

beginner 说:

我是先在window系统分出一个d盘,然后直接格式化这个盘并把系统安装在里面。
linux和window可以正常启动,但需要在每次启动的时候设置启动项(当然,如果你一直只启动某个系统则只需要设置一次)。

fdisk -l
Device Boot      Start         End      Blocks   Id  System
/dev/sda1             766        2805    16386300    c  *
/dev/sda2            2806        9729    55617030    5  *
/dev/sda3            2806        3825     8193118+  83  *
/dev/sda4            3826        5100    10241406   83  *
/dev/sda5            5101        5198      787153+  82  Linux
/dev/sda6            5199        6657    11719386   83  Linux
/dev/sda7            6658        7751     8787523+  83  EFI
/dev/sda8           7752        9729    15888253+  83  Linux swap

注意:上面的fdisk -l不是本机的真实信息,是从网上复制的。只是想说明,我是直接把系统安装在sda5(包括sda5)以下的地方。上面是window的分区
抱歉,实际上上面fdisk -l给出的信息中system是真实的(/dev/sda5(包括sda5)以下)

先理解下你的内容:
一、启动系统有二个,假设1、windows 2、archlinux
二、现在这二个系统进入都没有问题
三、假设你现在每次启动都是默认进入1,可你最近想直接进入2(不希望每次都手工选择2)
四、如果在设置里设置为每次都直接进入2的话,过段时间想一直进入1又要改设置。

一句话:只要不再次选择系统,每次都进入上次使用的系统。是不?如果是就看下面:
编辑 /etc/default/grub 文件,加入
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

update-grub一下即可!

离线

#8 2020-05-12 16:14:07

beginner
会员
注册时间: 2019-10-07
帖子: 256

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

primes 说:
beginner 说:

我是先在window系统分出一个d盘,然后直接格式化这个盘并把系统安装在里面。
linux和window可以正常启动,但需要在每次启动的时候设置启动项(当然,如果你一直只启动某个系统则只需要设置一次)。

fdisk -l
Device Boot      Start         End      Blocks   Id  System
/dev/sda1             766        2805    16386300    c  *
/dev/sda2            2806        9729    55617030    5  *
/dev/sda3            2806        3825     8193118+  83  *
/dev/sda4            3826        5100    10241406   83  *
/dev/sda5            5101        5198      787153+  82  Linux
/dev/sda6            5199        6657    11719386   83  Linux
/dev/sda7            6658        7751     8787523+  83  EFI
/dev/sda8           7752        9729    15888253+  83  Linux swap

注意:上面的fdisk -l不是本机的真实信息,是从网上复制的。只是想说明,我是直接把系统安装在sda5(包括sda5)以下的地方。上面是window的分区
抱歉,实际上上面fdisk -l给出的信息中system是真实的(/dev/sda5(包括sda5)以下)

先理解下你的内容:
一、启动系统有二个,假设1、windows 2、archlinux
二、现在这二个系统进入都没有问题
三、假设你现在每次启动都是默认进入1,可你最近想直接进入2(不希望每次都手工选择2)
四、如果在设置里设置为每次都直接进入2的话,过段时间想一直进入1又要改设置。

一句话:只要不再次选择系统,每次都进入上次使用的系统。是不?如果是就看下面:
编辑 /etc/default/grub 文件,加入
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

update-grub一下即可!

你说的没错,我确实的要实现这种效果。但你的方法在我的电脑上无效
上面2个变量我添加在了最后几行,可以直接拉到最下面。我编辑完成后,因为找不到你说的update-grub,所以我执行了grub-mkconfig -o /etc/grub/grub.cfg代替。但还是会直接进入系统,而不是出现一个菜单供我选择进入的系统
cat /etc/default/grub

# GRUB boot loader configuration

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT="true"
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

离线

#9 2020-05-12 16:18:41

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,447
个人网站

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

beginner 说:

你说的没错,我确实的要实现这种效果。但你的方法在我的电脑上无效
上面2个变量我添加在了最后几行,可以直接拉到最下面。我编辑完成后,因为找不到你说的update-grub,所以我执行了grub-mkconfig -o /etc/grub/grub.cfg代替。但还是会直接进入系统,而不是出现一个菜单供我选择进入的系统
cat /etc/default/grub

# GRUB boot loader configuration

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT="true"
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

我们还是不知道你使用的引导器是什么,是 UEFI 还是 MBR 引导。你安装了 grub,但是它是否被用作引导器了呢?另外,要检测其它操作系统,需要安装 os-prober 包,然后再 grub-mkconfig。

你提供的信息太少了,以至于我们无法准确给你下一步的引导。

请提供你的设备上的 fdisk -l 的输出。另外试一下运行 efibootmgr,如果成功,请提供它的输出(没装的话请自行安装)。

离线

#10 2020-05-12 16:26:45

beginner
会员
注册时间: 2019-10-07
帖子: 256

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

依云 说:
beginner 说:

你说的没错,我确实的要实现这种效果。但你的方法在我的电脑上无效
上面2个变量我添加在了最后几行,可以直接拉到最下面。我编辑完成后,因为找不到你说的update-grub,所以我执行了grub-mkconfig -o /etc/grub/grub.cfg代替。但还是会直接进入系统,而不是出现一个菜单供我选择进入的系统
cat /etc/default/grub

# GRUB boot loader configuration

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT="true"
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

我们还是不知道你使用的引导器是什么,是 UEFI 还是 MBR 引导。你安装了 grub,但是它是否被用作引导器了呢?另外,要检测其它操作系统,需要安装 os-prober 包,然后再 grub-mkconfig。

你提供的信息太少了,以至于我们无法准确给你下一步的引导。

请提供你的设备上的 fdisk -l 的输出。另外试一下运行 efibootmgr,如果成功,请提供它的输出(没装的话请自行安装)。

以下是运行efibootmgr后得到的信息,fdisk -l已经贴在1楼了

BootCurrent: 0002
Timeout: 2 seconds
BootOrder: 0002,0000,0001
Boot0000* Windows Boot Manager
Boot0001* UEFI: SysRecover Card
Boot0002* grub

最近编辑记录 beginner (2020-05-12 16:29:53)

离线

#11 2020-05-12 16:37:13

beginner
会员
注册时间: 2019-10-07
帖子: 256

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

依云 说:
beginner 说:

你说的没错,我确实的要实现这种效果。但你的方法在我的电脑上无效
上面2个变量我添加在了最后几行,可以直接拉到最下面。我编辑完成后,因为找不到你说的update-grub,所以我执行了grub-mkconfig -o /etc/grub/grub.cfg代替。但还是会直接进入系统,而不是出现一个菜单供我选择进入的系统

我们还是不知道你使用的引导器是什么,是 UEFI 还是 MBR 引导。你安装了 grub,但是它是否被用作引导器了呢?另外,要检测其它操作系统,需要安装 os-prober 包,然后再 grub-mkconfig。

你提供的信息太少了,以至于我们无法准确给你下一步的引导。

请提供你的设备上的 fdisk -l 的输出。另外试一下运行 efibootmgr,如果成功,请提供它的输出(没装的话请自行安装)。

其实我并非一定要从grub启动,我只是想在电脑启动的时候有一个菜单供我选择进入的系统。我尝试过百度以及其他搜索引擎的答案,但也是无效。
一个是编辑c盘根目录的隐藏文件,但我找不到。//请不要质疑我是否没有显示隐藏文件....
一个是msconfig选择,但msconfig只有一个window的启动,找不到linux的启动。
以及其他一些奇奇怪怪的方法。这里不全列出来了

最近编辑记录 beginner (2020-05-12 16:39:37)

离线

#12 2020-05-12 16:45:45

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,447
个人网站

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

beginner 说:

其实我并非一定要从grub启动,我只是想在电脑启动的时候有一个菜单供我选择进入的系统。我尝试过百度以及其他搜索引擎的答案,但也是无效。
一个是编辑c盘根目录的隐藏文件,但我找不到。//请不要质疑我是否没有显示隐藏文件....
一个是msconfig选择,但msconfig只有一个window的启动,找不到linux的启动。
以及其他一些奇奇怪怪的方法。这里不全列出来了

你的设备是 UEFI 引导,因此进入 boot menu 就可以选择了。
通常,进入的方式是按某个功能键。请使用你的设备的型号搜索。

离线

#13 2020-05-12 16:51:20

beginner
会员
注册时间: 2019-10-07
帖子: 256

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

依云 说:
beginner 说:

其实我并非一定要从grub启动,我只是想在电脑启动的时候有一个菜单供我选择进入的系统。我尝试过百度以及其他搜索引擎的答案,但也是无效。
一个是编辑c盘根目录的隐藏文件,但我找不到。//请不要质疑我是否没有显示隐藏文件....
一个是msconfig选择,但msconfig只有一个window的启动,找不到linux的启动。
以及其他一些奇奇怪怪的方法。这里不全列出来了

你的设备是 UEFI 引导,因此进入 boot menu 就可以选择了。
通常,进入的方式是按某个功能键。请使用你的设备的型号搜索。

我就是因为不喜欢每次都这样才来问的。我看别人不知道怎么做的,可以直接在电脑启动的时候选择其他操作系统,而不需要进入bios设置

最近编辑记录 beginner (2020-05-12 16:56:43)

离线

#14 2020-05-12 17:13:31

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,447
个人网站

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

beginner 说:

我就是因为不喜欢每次都这样才来问的。我看别人不知道怎么做的,可以直接在电脑启动的时候选择其他操作系统,而不需要进入bios设置

boot menu 就是在电脑启动的时候选择要进哪个系统啊。谁让你进 BIOS 设置了?

我的设备上也可以把 boot menu 设置为默认启动项,这样我不需要按键也能进入了。从你给出的 efibootmgr 输出来看,应该你是没给完整,所以我不知道……

离线

#15 2020-05-12 17:14:16

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,447
个人网站

Re: [已解决]双系统如何做到能在电脑启动的时候选择进入哪个系统?

beginner 说:

算了,既然没办法,我就通过f7选择启动的系统吧

不是没办法。而是你不提供足够的信息,让我们没办法。

离线

页脚