Попробуйте следующее:
awk 'FNR==NR{
a[$1"@"$7]=$5" "$6;
next
}
{
i=length($NF);
n=substr( $NF, i-2, i);
if( n"@"$4 in a) {
split(a[n"@"$4],b," ")
};
$1=b[1];
$2=b[2]
}
1' file1 file2
Вы можете изменить /boot/grub/grub.cfg
напрямую, но этот файл будет перезаписан update-grub2
. Если ваша конфигурация меняется нечасто, это может быть самым простым способом.
Или посмотрите:
Или посмотрите на эту папку /etc/grub.d
. Оттуда update-grub2
генерирует файл /boot/grub/grub.cfg
.
Вы можете изменить способ, которым автогенерация маркирует записи Windows, особенно если у вас установлена только одна Windows, перезаписав специальную команду menuentry в скрипте 30_os-prober
.
Зайдите в /etc/grub.d/30_os-prober
и найдите menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class windows ...
. Замените часть ' '
на свой ярлык, но остальные параметры оставьте прежними.
например, на моей системе:menuentry 'My Windows 7 system' --class windows --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' {
EOF
Но в этом есть подвох: во-первых, в 30_os-prober
есть две таких записи: одна для chain)
, другая для efi)
, поэтому вы должны изменить обе. Во-вторых, я полагаю эти изменения будут перезаписаны, как только произойдет обновление этих файлов / grub.
Другой подход:
Вы можете отключить часть windows в скрипте 30_os-prober
, закомментировав #
те menuentry ...
команды в секциях windows chain)
и efi)
. Это удалит автоматически сгенерированную запись windows. Затем возьмите текущую загрузочную запись windows из /boot/grub/grub.cfg
и скопируйте ее в файл пользовательского меню /etc/grub.d/40_custom
.