Автор Тема: Создание виртуального накопителя  (Прочитано 757 раз)

Оффлайн wws

  • Начинающий
  • *
  • Сообщений: 11
Всем доброго времени суток!

Пытаюсь создать виртуальный накопитель по вот этому описанию:
https://www.altlinux.org/Виртуальная_флешка

fallocate -l 400M usbf2.img
mkfs -t ext4 usbf2.img

Увы, при форматировании система сообщает:
Невозможно выполнить mkfs.ext4: нет такого файла или каталога.

Файл на месте. Пробовал выполнить mkfs с указанием полного пути до файла .img - результат тот же.

Что я делаю не так?

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 175
Re: Создание виртуального накопителя
« Ответ #1 : 26.03.2024 20:59:32 »
Потому что речь про файл mkfs.ext4, который неявно вызывается командой "mkfs -t ext4", а он находится здесь:
whereis mkfs.ext4
mkfs.ext4: /sbin/mkfs.ext4 /usr/share/man/man8/mkfs.ext4.8.xz
т.е. без указания полного пути доступен только под root.
Поэтому под пользователем вторая команда будет выглядеть как:
/sbin/mkfs.ext4 usbf2.img

Оффлайн wws

  • Начинающий
  • *
  • Сообщений: 11
Re: Создание виртуального накопителя
« Ответ #2 : 27.03.2024 09:35:14 »
Потому что речь про файл mkfs.ext4, который неявно вызывается командой "mkfs -t ext4", а он находится здесь:
whereis mkfs.ext4
mkfs.ext4: /sbin/mkfs.ext4 /usr/share/man/man8/mkfs.ext4.8.xz
т.е. без указания полного пути доступен только под root.
Поэтому под пользователем вторая команда будет выглядеть как:
/sbin/mkfs.ext4 usbf2.img

Да, примерно так всё и есть, спасибо большое,
/sbin/mkfs.ext4 usbf2.img- работает.

Но - пара моментов: 1 изначально под root'ом и пытался выполнить команду "mkfs -t ext4", и получил вышеуказанный результат.
2 - действительно, оказывается, свой mkfs на каждую ФС, но, получается, неявный вызов его в виде "mkfs -t" не работает, причём даже при указании "/sbin/mkfs"...

P. S. Alt 10 РС, если что.


« Последнее редактирование: 27.03.2024 09:37:26 от wws »

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 175
Re: Создание виртуального накопителя
« Ответ #3 : 27.03.2024 20:59:38 »
Но - пара моментов: 1 изначально под root'ом и пытался выполнить команду "mkfs -t ext4", и получил вышеуказанный результат.
2 - действительно, оказывается, свой mkfs на каждую ФС, но, получается, неявный вызов его в виде "mkfs -t" не работает, причём даже при указании "/sbin/mkfs"...
Как получали root-доступ? su или su - ? В первом случае остаётся окружение пользователя (в частности переменная $PATH), а во втором полностью окружение root.
Неявный вызов нужной утилиты при mkfs -t  , видимо, происходит с поиском её в $PATH (полный путь указан для /sbin/mkfs, но не для того, что она вызывает)

Оффлайн wws

  • Начинающий
  • *
  • Сообщений: 11
Re: Создание виртуального накопителя
« Ответ #4 : 27.03.2024 21:42:16 »
Но - пара моментов: 1 изначально под root'ом и пытался выполнить команду "mkfs -t ext4", и получил вышеуказанный результат.
2 - действительно, оказывается, свой mkfs на каждую ФС, но, получается, неявный вызов его в виде "mkfs -t" не работает, причём даже при указании "/sbin/mkfs"...
Как получали root-доступ? su или su - ? В первом случае остаётся окружение пользователя (в частности переменная $PATH), а во втором полностью окружение root.
Неявный вызов нужной утилиты при mkfs -t  , видимо, происходит с поиском её в $PATH (полный путь указан для /sbin/mkfs, но не для того, что она вызывает)

Вот про su- не знал до сих пор вообще. Хотя вопрос время о параметрах окружения время от времени возникал. Спасибо огромное, буду знать. :) Действительно, через su- все работает, как описано в инструкции. :)

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 175
Re: Создание виртуального накопителя
« Ответ #5 : 27.03.2024 21:48:09 »
Вот про su- не знал до сих пор вообще. Хотя вопрос время о параметрах окружения время от времени возникал. Спасибо огромное, буду знать. :) Действительно, через su- все работает, как описано в инструкции. :)
man su
...
       -,-l, --login
              Вызывает оболочку, как оболочку регистрации пользователя в системе.
...
просто минус - это сокращённая форма параметра --login root