Как войти в GRUB в VMware Fusion: Исправление ошибки sudo на Ubuntu

Представьте ситуацию: вы пытаетесь создать нового пользователя в Ubuntu, но терминал выдает ошибку “sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set”. Всё потому, что права файла sudo сбились, и система не может выполнить команды с повышенными привилегиями. Чтобы это исправить, нужно зайти в GRUB и восстановить настройки. Но как это сделать, если Ubuntu запущена в VMware Fusion на MacBook? Давайте разберемся детально.

Доступ к GRUB через BIOS-режим

Первое, что стоит попробовать – классический метод с зажатием клавиши Shift. Но в виртуальной машине есть нюансы:

  1. Запустите виртуальную машину с Ubuntu.
  2. Сразу после старта кликните в окно VMware – это перехватит фокус ввода.
  3. Удерживайте Shift (не нажимайте многократно – именно зажмите и держите).

Если всё сделано вовремя, появится меню GRUB, как на скриншоте:

Меню Grub

Выберите пункт Advanced options for Ubuntu, затем – строку с пометкой (recovery mode). В следующем меню нажмите root, чтобы перейти в режим восстановления с правами суперпользователя.

Терминал в Live-режиме

Если GRUB не открывается, возможно, вы не успели нажать клавишу. Перезапустите VM и повторите попытку, действуя быстрее.

В командной строке восстановления выполните:

chown root:root /usr/bin/sudo  
chmod 4755 /usr/bin/sudo  

Первая команда устанавливает владельца файла sudo на root, вторая – задает правильные разрешения (setuid-бит, который позволяет запускать файл от имени владельца). После этого введите shutdown now, чтобы перезагрузить систему.

Если Ubuntu использует UEFI

Современные системы часто работают через UEFI, и здесь метод с Shift не сработает. Вместо этого:

1. Запустите VM и кликните в её окно.

2. Быстро нажимайте Esc, пока не появится Boot Manager:

3. Выберите строку с Ubuntu, нажмите Enter, затем снова Esc (один раз!).

    Откроется стандартное меню GRUB. Дальнейшие шаги аналогичны BIOS-методу: выбор recovery mode, вход в root и выполнение команд для исправления sudo.

    Важно: Если вместо Boot Manager появляется логотип Ubuntu, значит, вы не успели нажать Esc. Увеличьте скорость или попробуйте начать нажимать клавишу раньше.

    Альтернатива: Live-режим Ubuntu

    Если доступ к GRUB по каким-то причинам невозможен (например, поврежден загрузчик), используйте установочную флешку Ubuntu:

    1. Подключите ISO-образ Ubuntu к VMware через настройки виртуальной машины (Devices > CD/DVD > Settings).

    2. Загрузитесь с Live-системы, выберите Try Ubuntu.

    3. Откройте терминал и смонтируйте корневой раздел:

    sudo mount /dev/sda2 /mnt

    (Здесь /dev/sda2 – пример; уточните раздел через lsblk)

    4. Исправьте права:

    sudo chown root:root /mnt/usr/bin/sudo  
    sudo chmod 4755 /mnt/usr/bin/sudo  

    5. Размонтируйте раздел и перезагрузитесь:

    sudo umount /mnt  

      Кстати, этот метод полезен не только для исправления sudo, но и для других критических ошибок, когда система не загружается. Главное – правильно определить раздел с установленной Ubuntu (обычно это /dev/sda2, но может быть и sda1, в зависимости от структуры диска).

      Почему вообще возникает ошибка с sudo? Чаще всего – из-за случайного изменения прав командой вроде chmod -R 777 /. Setuid-бит (число 4 в 4755) позволяет программам запускаться с правами владельца, даже если их вызвал обычный пользователь. Без этого sudo не может повысить привилегии.

      После выполнения этих шагов система должна заработать корректно. Если проблема повторяется, проверьте, нет ли скриптов или фоновых процессов, которые меняют права файлов. Также рекомендую настроить резервные копии критических конфигураций – например, через timeshift. Это сэкономит время в будущем, если что-то пойдет не так.

      Добавить комментарий

      Все поля обязательны к заполнению. Ваш адрес email не будет виден никому.

      Новое
      Интересное