Изменение порядка загрузки жесткого диска без использования настроек BIOS

Извините за вопрос о публикации, но я прочитал следующие ссылки:

Изменение порядка загрузки ubuntu изменить порядок загрузки загрузчика

Но ни одна из вышеперечисленных ссылок не смогла решить мою проблему. [ ! d5]

Собственно, вопрос такой же, но смысл другой. Я хочу изменить порядок загрузки диска на моем компьютере (какой диск будет загружаться первым, вторым и третьим. Например, CD-ROM -> Жесткий диск -> USB-накопитель). Я могу сделать это с помощью настроек BIOS, но я хочу изменить порядок загрузки диска с помощью Ubuntu.

Когда я набираю (какой диск будет загружаться первым, вторым и третьим, например, CD-ROM -> Hard -Disk -> USB-Drive) на терминале, я получаю следующий результат.

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: E7225B99-3850-4E61-8D35-D3D269A42F1A Device Start End Sectors Size Type /dev/sda1 2048 421529599 421527552 201G Microsoft basic data /dev/sda2 421529600 840959999 419430400 200G Microsoft basic data /dev/sda3 840960000 841881599 921600 450M Windows recovery environment /dev/sda4 841881600 842086399 204800 100M EFI System /dev/sda5 842086400 842119167 32768 16M Microsoft reserved /dev/sda6 843057152 864028671 20971520 10G Microsoft basic data /dev/sda7 864028672 1015023615 150994944 72G Linux filesystem /dev/sda8 1015023616 1224738815 209715200 100G Microsoft basic data /dev/sda9 1226835968 1436551167 209715200 100G Microsoft basic data /dev/sda10 1438648320 1635380309 196731990 93.8G Microsoft basic data /dev/sda11 1635381248 1710135295 74754048 35.7G Linux filesystem /dev/sda12 1710135296 1953523711 243388416 116.1G Linux filesystem Disk /dev/sdb: 14.9 GiB, 16005464064 bytes, 31260672 sectors 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: dos Disk identifier: 0x05fec185 Device Boot Start End Sectors Size Id Type /dev/sdb1 * 2048 31260671 31258624 14.9G c W95 FAT32 (LBA)

Здесь, в настоящее время, у меня есть два диска Один внутренний жесткий диск (1 ТБ) и второй внешний USB-привод (14,9 ГБ).

Есть ли какая-либо команда в Linux?

3
задан 13 January 2018 в 21:21

3 ответа

Да, для EFI есть: efibootmgr

$ efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0044,004E,004F
Boot0000* ubuntu
Boot0044* UEFI OS
Boot004E* ubuntu
Boot004F* CD/DVD Drive 

... показывает текущий порядок загрузки. efibootmgr -v (более подробная информация, включая GUID), чтобы их перечислить:

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* ubuntu    HD(1,GPT,066aad32-119e-407c-af62-64ce08918c66,0x800,0x17800)/File(\EFI\ubuntu\shimx64.efi)
Boot0044* UEFI OS   HD(1,GPT,066aad32-119e-407c-af62-64ce08918c66,0x800,0x17800)/File(\EFI\BOOT\BOOTX64.EFI)
Boot004E* ubuntu    HD(1,GPT,066aad32-119e-407c-af62-64ce08918c66,0x800,0x17800)/File(\EFI\Ubuntu\grubx64.efi)
Boot004F* CD/DVD Drive  BBS(CDROM,,0x0)..GO..NO........o.M.A.T.S.H.I.T.A.D.V.D.-.R.A.M. .U.J.8.G.6....................A...........................>..Gd-.;.A..MQ..L.0.H.2.9. . .7.7.7.6.7.4. . . . . . . . ........BO

Параметр -o позволяет вам изменить загрузочный режим:

-o | --bootorder XXXX,YYYY,ZZZZ              
Explicitly set BootOrder (hex).  Any value from 0 to FFFF 
is accepted so long as it corresponds to an existing 
Boot#### variable, and zero padding is not required.

Пример: [!d4 ]

sudo efibootmgr -o 0
[sudo] password for rinzwind: 
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* ubuntu
Boot0044* UEFI OS
Boot004E* ubuntu
Boot004F* CD/DVD Drive 

и

 sudo efibootmgr -o 4F
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 004F
Boot0000* ubuntu
Boot0044* UEFI OS
Boot004E* ubuntu
Boot004F* CD/DVD Drive 

1 ​​небольшая проблема: не все биос правильно сохраняют это, поэтому, если ваша ошибка также может быть сброшена до предыдущего; в этом случае вам нужно будет повторно выполнять команду каждый раз.

2
ответ дан 22 May 2018 в 15:33
  • 1
    Будет ли это работать для UEFI и Legacy как? – Prateek Agrawal 13 January 2018 в 21:52
  • 2
    Идентификатор @PrateekAgrawal зависит от вашего UEFI. Как заявил Ринзвинд, «не все биосы правильно хранят этот». IMO Я бы посоветовал использовать устаревшую загрузку. Возможно, это было необходимо в какой-то момент, но уже не было. – Panther 13 January 2018 в 21:53
  • 3
    @PrateekAgrawal не по наследству. только efi. – Rinzwind 13 January 2018 в 23:58

Да, для EFI есть: efibootmgr

$ efibootmgr BootCurrent: 0000 Timeout: 0 seconds BootOrder: 0000,0044,004E,004F Boot0000* ubuntu Boot0044* UEFI OS Boot004E* ubuntu Boot004F* CD/DVD Drive

... показывает текущий порядок загрузки. efibootmgr -v (более подробная информация, включая GUID), чтобы их перечислить:

BootCurrent: 0000 Timeout: 0 seconds BootOrder: 0000 Boot0000* ubuntu HD(1,GPT,066aad32-119e-407c-af62-64ce08918c66,0x800,0x17800)/File(\EFI\ubuntu\shimx64.efi) Boot0044* UEFI OS HD(1,GPT,066aad32-119e-407c-af62-64ce08918c66,0x800,0x17800)/File(\EFI\BOOT\BOOTX64.EFI) Boot004E* ubuntu HD(1,GPT,066aad32-119e-407c-af62-64ce08918c66,0x800,0x17800)/File(\EFI\Ubuntu\grubx64.efi) Boot004F* CD/DVD Drive BBS(CDROM,,0x0)..GO..NO........o.M.A.T.S.H.I.T.A.D.V.D.-.R.A.M. .U.J.8.G.6....................A...........................>..Gd-.;.A..MQ..L.0.H.2.9. . .7.7.7.6.7.4. . . . . . . . ........BO

Параметр -o позволяет вам изменить загрузочный режим:

-o | --bootorder XXXX,YYYY,ZZZZ Explicitly set BootOrder (hex). Any value from 0 to FFFF is accepted so long as it corresponds to an existing Boot#### variable, and zero padding is not required.

Пример:

sudo efibootmgr -o 0 [sudo] password for rinzwind: BootCurrent: 0000 Timeout: 0 seconds BootOrder: 0000 Boot0000* ubuntu Boot0044* UEFI OS Boot004E* ubuntu Boot004F* CD/DVD Drive

и

sudo efibootmgr -o 4F BootCurrent: 0000 Timeout: 0 seconds BootOrder: 004F Boot0000* ubuntu Boot0044* UEFI OS Boot004E* ubuntu Boot004F* CD/DVD Drive

1 ​​небольшая проблема: не все биос правильно сохраняют это, поэтому, если ваша ошибка также может быть сброшена до предыдущего; в этом случае вам нужно будет повторно выполнять команду каждый раз.

2
ответ дан 17 July 2018 в 23:09

Да, для EFI есть: efibootmgr

$ efibootmgr BootCurrent: 0000 Timeout: 0 seconds BootOrder: 0000,0044,004E,004F Boot0000* ubuntu Boot0044* UEFI OS Boot004E* ubuntu Boot004F* CD/DVD Drive

... показывает текущий порядок загрузки. efibootmgr -v (более подробная информация, включая GUID), чтобы их перечислить:

BootCurrent: 0000 Timeout: 0 seconds BootOrder: 0000 Boot0000* ubuntu HD(1,GPT,066aad32-119e-407c-af62-64ce08918c66,0x800,0x17800)/File(\EFI\ubuntu\shimx64.efi) Boot0044* UEFI OS HD(1,GPT,066aad32-119e-407c-af62-64ce08918c66,0x800,0x17800)/File(\EFI\BOOT\BOOTX64.EFI) Boot004E* ubuntu HD(1,GPT,066aad32-119e-407c-af62-64ce08918c66,0x800,0x17800)/File(\EFI\Ubuntu\grubx64.efi) Boot004F* CD/DVD Drive BBS(CDROM,,0x0)..GO..NO........o.M.A.T.S.H.I.T.A.D.V.D.-.R.A.M. .U.J.8.G.6....................A...........................>..Gd-.;.A..MQ..L.0.H.2.9. . .7.7.7.6.7.4. . . . . . . . ........BO

Параметр -o позволяет вам изменить загрузочный режим:

-o | --bootorder XXXX,YYYY,ZZZZ Explicitly set BootOrder (hex). Any value from 0 to FFFF is accepted so long as it corresponds to an existing Boot#### variable, and zero padding is not required.

Пример:

sudo efibootmgr -o 0 [sudo] password for rinzwind: BootCurrent: 0000 Timeout: 0 seconds BootOrder: 0000 Boot0000* ubuntu Boot0044* UEFI OS Boot004E* ubuntu Boot004F* CD/DVD Drive

и

sudo efibootmgr -o 4F BootCurrent: 0000 Timeout: 0 seconds BootOrder: 004F Boot0000* ubuntu Boot0044* UEFI OS Boot004E* ubuntu Boot004F* CD/DVD Drive

1 ​​небольшая проблема: не все биос правильно сохраняют это, поэтому, если ваша ошибка тоже может быть сброшена до предыдущего; в этом случае вам нужно будет повторно выполнять команду каждый раз.

2
ответ дан 24 July 2018 в 13:41

Другие вопросы по тегам:

Похожие вопросы: