几年前,我在电脑的硬盘上安装了 ubuntu。几天前,在 18.04 发布后,我买了一个 ssd 并重新安装了所有内容。旧硬盘仍然连接到电脑上 - 只是为了查找东西。
GRUB 确实将旧硬盘作为辅助启动选项进行索引。但我再也不会启动旧系统了。那么有没有办法从 grub 选项中删除旧硬盘?
答案1
我找到了关于此的笔记。
编辑/etc/default/grub
并添加行
GRUB_DISABLE_OS_PROBER=true
退出,保存更改,然后运行
sudo update-grub
从 grub维基百科(第 16 项)
此条目用于阻止 GRUB 将 os-prober 的结果添加到菜单中。值为“true”将禁用 os-prober 对其他分区的操作系统检查,包括 Windows、Linux、OSX 和 Hurd在执行 update-grub 命令期间。这将使 grub 不再寻找其他操作系统。
答案2
简短答案
如果您不想要第三方实用程序,您可以使用移动命令来完成:
sudo mv /mnt/extra_distro/boot /mnt/extra_distro/boot.old
那sudo update-grub
当然啦。
长答案
Grub 的 OS_Prober 检查每个已安装的驱动器是否存在和/boot/*
条目。然后将这些选项添加到已启动的 实例中。例如在我的系统上:vmlinuz*
initrd.img*
grub
$ sudo mount-menu.sh
Mount Partition
┌───────────┤ Use arrow, page, home & end keys. Tab toggle option ├────────────┐
│ NAME FSTYPE LABEL SIZE MOUNTPOINT │
│ │
│ sda 931.5G ↑│
│ ├─sda4 ntfs WINRETOOLS 450M ▒│
│ ├─sda2 128M ▒│
│ ├─sda5 ntfs Image 11.4G ▒│
│ ├─sda3 ntfs HGST_Win10 919G /mnt/d ▒│
│ └─sda1 vfat ESP 500M ▒│
│ nvme0n1 477G ▒│
│ ├─nvme0n1p5 ntfs 858M ▒│
│ ├─nvme0n1p3 16M ▒│
│ ├─nvme0n1p1 ntfs 450M ▒│
│ ├─nvme0n1p8 ntfs Shared_WSL+Linux 9G /mnt/e ▒│
│ ├─nvme0n1p6 ext4 Ubuntu18.04 23.7G ▮│
│ ├─nvme0n1p4 ntfs NVMe_Win10 390.4G /mnt/c ▒│
│ ├─nvme0n1p2 vfat 99M /boot/efi ▒│
│ ├─nvme0n1p9 swap Linux Swap 7.9G [SWAP] ▒│
│ └─nvme0n1p7 ext4 NVMe_Ubuntu_16.0 44.6G / ↓│
│ │
│ │
│ <Select unmounted partition> <Exit> │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
我将挂载 Ubuntu 18.04 分区:
=====================================================================
Mount Device: /dev/nvme0n1p6
Mount Name: /mnt/mount-menu.BkLzA
File System: ext4
ID: Ubuntu
RELEASE: 18.04
CODENAME: bionic
DESCRIPTION: Ubuntu 18.04 LTS
Size Used Avail Use%
24G 18G 4.7G 79%
现在更新grub
并查看菜单:
$ sudo update-grub
$ grub-menu.sh
Grub Version: 2.02~beta2-36ubuntu3.18
┌─────────┤ Use arrow, page, home & end keys. Tab toggle option ├──────────┐
│ Menu No. --------------- Menu Name ---------------
│
│1>41 Ubuntu, with Linux 4.4.0-127-generic (recovery mode) ↑
│1>42 Ubuntu, with Linux 3.16.53-031653-generic ▒
│1>43 Ubuntu, with Linux 3.16.53-031653-generic (upstart) ▒
│1>44 Ubuntu, with Linux 3.16.53-031653-generic (recovery mode) ▒
│1>44 Ubuntu, with Linux 3.16.53-031653-generic (recovery mode) ▒
│2 Windows Boot Manager (on /dev/nvme0n1p2) ▒
│3 Ubuntu 18.04 LTS (18.04) (on /dev/nvme0n1p6) ▒
│4 Advanced options for Ubuntu 18.04 LTS (18.04) (on /dev/nvme0n1p6) ▒
│4>0 Ubuntu (on /dev/nvme0n1p6) ▒
│4>1 Ubuntu, with Linux 4.15.0-22-generic (on /dev/nvme0n1p6) ▮
│4>2 Ubuntu, with Linux 4.15.0-22-generic (recovery mode) (on /dev/nvme0 ▒
│4>3 Ubuntu, with Linux 4.15.0-20-generic (on /dev/nvme0n1p6) ▒
│4>4 Ubuntu, with Linux 4.15.0-20-generic (recovery mode) (on /dev/nvme0 ▒
│4>5 Ubuntu, with Linux 4.14.34-041434-generic (on /dev/nvme0n1p6) ▒
│4>6 Ubuntu, with Linux 4.14.34-041434-generic (recovery mode) (on /dev/ ▒
│4>7 Ubuntu, with Linux 4.14.31-041431-generic (on /dev/nvme0n1p6) ↓
│
│
│ <Display Grub Boot> <Exit>
│ │
└──────────────────────────────────────────────────────────────────────────┘
注意 grub 选项:
- 2 Windows 启动管理器(在 /dev/nvme0n1p2 上)
- 3 Ubuntu 18.04 LTS (18.04)(位于 /dev/nvme0n1p6 上)
- 4 Ubuntu 18.04 LTS(18.04)的高级选项(在 /dev/nvme0n1p6 上)
我们希望保留选项 2,而删除选项 3 和 4。
因此在我的系统上使用:
$ sudo mv /mnt/mount-menu.BkLzA/boot /mnt/mount-menu.BkLzA/boot.old
$ sudo update-grub
$ grub-menu.sh
Grub Version: 2.02~beta2-36ubuntu3.18
┌─────────┤ Use arrow, page, home & end keys. Tab toggle option ├──────────┐
│ Menu No. --------------- Menu Name --------------- │
│ │
│ 1>33 Ubuntu, with Linux 4.13.0-43-generic ↑ │
│ 1>34 Ubuntu, with Linux 4.13.0-43-generic (upstart) ▒ │
│ 1>35 Ubuntu, with Linux 4.13.0-43-generic (recovery mode) ▒ │
│ 1>36 Ubuntu, with Linux 4.9.77-040977-generic ▒ │
│ 1>37 Ubuntu, with Linux 4.9.77-040977-generic (upstart) ▒ │
│ 1>38 Ubuntu, with Linux 4.9.77-040977-generic (recovery mode) ▒ │
│ 1>39 Ubuntu, with Linux 4.4.0-127-generic ▒ │
│ 1>40 Ubuntu, with Linux 4.4.0-127-generic (upstart) ▒ │
│ 1>41 Ubuntu, with Linux 4.4.0-127-generic (recovery mode) ▒ │
│ 1>42 Ubuntu, with Linux 3.16.53-031653-generic ▒ │
│ 1>43 Ubuntu, with Linux 3.16.53-031653-generic (upstart) ▒ │
│ 1>44 Ubuntu, with Linux 3.16.53-031653-generic (recovery mode) ▒ │
│ 1>44 Ubuntu, with Linux 3.16.53-031653-generic (recovery mode) ▒ │
│ 2 Windows Boot Manager (on /dev/nvme0n1p2) ▒ │
│ 3 Windows Boot Manager (on /dev/sda1) ▮ │
│ 4 System setup ↓ │
│ │
│ │
│ <Display Grub Boot> <Exit> │
│ │
└──────────────────────────────────────────────────────────────────────────┘
瞧不再出现额外的不需要的分布。注意,我曾经读到过只需重命名/mnt/extra_distro/grub/grub.cfg
文件即可解决问题,但刚才测试似乎不起作用。
答案3
最简单的(GUI)方法是运行grub 定制器
$ sudo add-apt-repository ppa:danielrichter2007/grub-customizer
$ sudo apt-get update
$ sudo apt-get install grub-customizer
答案4
您可以使用该GRUB_OS_PROBER_SKIP_LIST
选项有选择地禁用扫描设备。例如,如果您想排除 /dev/sdb1 和 /dev/sdc1,首先您需要找出它们的UUID
:
blkid | grep -E 'sdb1|sdc1'
将会输出类似这样的内容:
/dev/sdb1: LABEL="bkp_root" UUID="1-2-3-4-5" TYPE="ext4" PARTUUID="123"
/dev/sdc1: LABEL="bkp2_root" UUID="a-b-c-d-e" TYPE="ext4" PARTUUID="abc"
/etc/default/grub
然后使用以下格式写入选项:
GRUB_OS_PROBER_SKIP_LIST="1-2-3-4-5@/dev/sdb1 a-b-c-d-e@/dev/sdc1"
最后,当你运行它时sudo update-grub
它会通知你更改:
Skipped Ubuntu 18.04.5 LTS (18.04) on /dev/sdb1 by user request.
Skipped Ubuntu 18.04.5 LTS (18.04) on /dev/sdc1 by user request.