Поскольку при запуске Vagrant VM вы обычно получаете доступ к root через sudo
, вы можете просто войти в нее и стать пользователем root:
$ vagrant ssh
$ sudo -Es
Получив права суперпользователя, вы можете сбросить учетные данные на любые нужные вам одним из двух способов.
Начиная с RHEL и CentOS 7.2+ и Fedora есть вспомогательный скрипт/инструмент, grub2-setpassword
, который значительно упрощает этот процесс.
Чтобы использовать его, вы должны сделать следующее:
$ grub2-setpassword
Enter password:
Confirm password:
$
Как только вы сделаете это, пароль будет автоматически установлен для вас в этом файле:/boot/grub2/user.cfg
:
$ cat /boot/grub2/user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.5A95A11398D5DEAA9B205DCEA37E0FDCC069CF6D0C398E8C9FF2ED1D8DE072DDE1D916F955266C306AAC7CA62E0D29A7C6558F3B29E40008289DBE857B8354CE.DD410AA2E5D6495BA723147046B88B89A585656AF4298F07CBC93E7A4F73713A824AE1F3448F837809B6655861A1BA5F0FB615206470E4228E57F7BCF11442A3
Вы можете посмотреть, как этот файл используется GRUB2 в дистрибутивах на основе CentOS, найдя его в /etc/grub.d
вот так:
$ grep -l user.cfg /etc/grub.d/*
/etc/grub.d/01_users
Содержимое этого файла:
$ cat /etc/grub.d/01_users
#!/bin/sh -e
cat << EOF
if [ -f \${prefix}/user.cfg ]; then
source \${prefix}/user.cfg
if [ -n "\${GRUB2_PASSWORD}" ]; then
set superusers="root"
export superusers
password_pbkdf2 root \${GRUB2_PASSWORD}
fi
fi
EOF
Итак, пользователем по умолчанию будет root. Хорошо, если бы мы перезагрузили нашу виртуальную машину и попытались использовать учетные данные «root» с паролем, который мы предоставилиgrub2-setpassword
:
Теперь мы можем войти в меню:
В других дистрибутивах, которые не предоставляют скрипт grub2-setpassword
, процесс несколько сложнее, но не ужасен.
Вам нужно использовать инструмент GRUB2 для шифрования вашего пароля:
$ grub-mkpasswd-pbkdf2
Enter password:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.465B5EE2D2F6A767304EB397D6D97C70BC38653F95AFE58B24F190D5DABB0143920F736C125B91FB9F298AFF3D0F8FBBFB8228D5C8C9DD371ADBB1044CC80BFC.52D87AFD47A5BE2D7B6CF755D26CD5F481557DBCF5E725ABA44BF003A2970D3F775E8657428EDC201D86A3DF07D7A8109AFD5764EA058BE94D840F42ED17C3E2
, а затем возьмите вывод этой команды grub.pbkdf2.sha512.10000.....
и скопируйте/вставьте его в файл.
$ cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.465B5EE2D2F6A767304EB397D6D97C70BC38653F95AFE58B24F190D5DABB0143920F736C125B91FB9F298AFF3D0F8FBBFB8228D5C8C9DD371ADBB1044CC80BFC.52D87AFD47A5BE2D7B6CF755D26CD5F481557DBCF5E725ABA44BF003A2970D3F775E8657428EDC201D86A3DF07D7A8109AFD5764EA058BE94D840F42ED17C3E2
ПРИМЕЧАНИЕ.:Мы устанавливаем имя пользователя «root», оно может быть каким угодно. если вы меняете его, обязательно измените его в обеих строках(superusers="root"
и password_pbkdf2 root...
).
grub.cfg
Теперь нам нужно регенерировать нашgrub.cfg
:
$ grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file...
Found linux image: /boot/vmlinuz-4.4.0-130-generic
Found initrd image: /boot/initrd.img-4.4.0-130-generic
done
Это возьмет все содержимое /etc/grub.d
и включит его в новый grub.cfg
. Итак, наш 40_custom
раздел grub.cfg
будет идти от этого:
$ cat /boot/grub/grub.cfg
...
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
...
К этому:
$ cat /boot/grub/grub.cfg
...
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.465B5EE2D2F6A767304EB397D6D97C70BC38653F95AFE58B24F190D5DABB0143920F736C125B91FB9F298AFF3D0F8FBBFB8228D5C8C9DD371ADBB1044CC80BFC.52D87AFD47A5BE2D7B6CF755D26CD5F481557DBCF5E725ABA44BF003A2970D3F775E8657428EDC201D86A3DF07D7A8109AFD5764EA058BE94D840F42ED17C3E2
### END /etc/grub.d/40_custom ###
...
Это зависит.
Как правило, запуск одного программного потока на каждый поток ЦП обеспечивает наилучшую производительность. Я регулярно вижу ускорение на 10 % по сравнению с запуском одного программного потока на ядро ЦП -, поэтому вместо одного программного потока, работающего на 100 %, у меня есть два программных потока, каждый из которых работает на 55 %.
Но я также наблюдал более высокую производительность при меньшем числе процессов по сравнению с ядрами ЦП, если несколько ядер используют один и тот же кэш. Однако это исключительно редкое явление.
Обычно следует использовать все 16 потоков ЦП, но единственный способ узнать наверняка в вашей системе — измерить.