Совместимость линукса с виндовс

Работа в файловых системах Windows и Linux

При работе с файловыми системами Windows и Linux следует учитывать ряд моментов. В этом пошаговом руководстве рассматриваются некоторые из них, а также приводятся примеры поддержки взаимодействия для смешанного использования команд на основе Windows и Linux.

Хранение файлов и производительность в файловых системах

Мы не рекомендуем работать с разными операционными системами, если на это нет особой причины. Для ускорения производительности сохраняйте файлы в файловой системе WSL, если используете командную строку Linux (Ubuntu, OpenSUSE и т. д.). Если вы работаете в командной строке Windows (PowerShell, командной строке), сохраняйте файлы в файловой системе Windows.

Например, при хранении файлов проекта WSL:

  • Используйте корневой каталог файловой системы Linux: \\wsl$\Ubuntu-18.04\home\ \Project
  • Используйте корневой каталог файловой системы Windows: /mnt/c/Users/ /Project$ или C:\Users\ \Project .

Если вы видите /mnt/ в пути к файлу в командной строке WSL, это означает, что вы работаете с подключенного диска. Поэтому диск C:/ ( C:\Users\ \Project ) в файловой системе Windows при подключении в командной строке WSL будет выглядеть следующим образом: /mnt/c/Users/ /Project$ . Файлы проекта можно хранить на подключенном диске, но производительность может повыситься, если вы будете хранить их непосредственно на диске \\wsl$ .

Просмотр текущего каталога в проводнике Windows

Вы можете просмотреть каталог, в котором хранятся файлы, открыв проводник Windows из командной строки:

Также можно использовать команду powershell.exe /c start . . Обязательно добавьте точку в конце команды, чтобы открыть текущий каталог.

Чтобы просмотреть все доступные дистрибутивы Linux и их корневые файловые системы в Windows проводнике, введите \\wsl$ в адресной строке.

Учет регистра в именах файлов и каталогов

Чувствительность к регистру определяет, обрабатываются ли прописные (FOO.txt) и строчные буквы (foo.txt) как уникальные (с учетом регистра) или эквивалентные (без учета регистра) в имени файла или каталога. В файловых системах Windows и Linux чувствительность к регистру разная: в Windows он учитывается, а в Linux — нет. Дополнительные сведения о том, как настроить чувствительность к регистру, особенно при подключении дисков с помощью WSL, см. в статье Настройка чувствительности к регистру.

Взаимодействие между командами Windows и Linux

Средства и команды Windows и Linux в WSL могут использоваться взаимозаменяемо.

  • Запустить средства Windows (например, notepad.exe) из командной строки Linux (например, Ubuntu).
  • Запустить средства Linux (например, grep) из командной строки Windows (например, PowerShell).
  • Совместное использование переменных среды между Linux и Windows. (сборка 17063+)

Запуск инструментов Linux из командной строки Windows

Запускайте двоичные файлы Linux из командной строки Windows (CMD или PowerShell), используя wsl (или wsl.exe ).

Двоичные файлы вызываются следующим образом.

  • Используется тот же рабочий каталог, что и для текущей командной строки или сеанса PowerShell.
  • Файл выполняется от имени пользователя WSL по умолчанию.
  • Требуются те же права администратора Windows, что и у вызывающего процесса и терминала.

Команда Linux после wsl (или wsl.exe ) обрабатывается как любая команда, выполняемая в WSL. Можно выполнять sudo, конвейерную передачу и перенаправление файлов.

Пример использования sudo для обновления дистрибутива Linux по умолчанию:

Имя пользователя дистрибутива Linux по умолчанию будет указано после выполнения этой команды, и вам будет предложено указать пароль. После правильного ввода пароля дистрибутив скачает обновления.

Смешивание команд Linux и Windows

Ниже приведено несколько примеров смешиваний команд Linux и Windows с помощью PowerShell.

Читайте также:  Как запустить переустановку windows через командную строку

Чтобы выполнить команду Linux ls -la для вывода списка файлов и команду PowerShell findstr для фильтрации результатов слов, содержащих git, объедините команды:

Чтобы выполнить команду PowerShell dir для вывода списка файлов и команду Linux grep для фильтрации результатов слов, содержащих git, объедините команды:

Чтобы использовать команду Linux ls -la для вывода списка файлов и команду PowerShell > out.txt для вывода этого списка в текстовый файл с именем out.txt, объедините команды:

Команды, передаваемые в wsl.exe , перенаправляются в процесс WSL без изменения. Пути к файлам должны быть указаны в формате WSL.

Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Linux /proc/cpuinfo с помощью PowerShell, сделайте следующее:

Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Windows C:\Program Files с помощью PowerShell, сделайте следующее:

Запуск инструментов Windows из Linux

WSL может запускать средства Windows непосредственно из командной строки WSL с помощью [tool-name].exe . Например, notepad.exe .

Приложения, выполняемые таким образом, обладают следующими свойствами.

  • Рабочим каталогом остается каталог командной строки WSL (в большинстве случаев; исключения описаны ниже).
  • Они имеют те же разрешения, что и процесс WSL.
  • Они выполняются от имени активного пользователя Windows.
  • Они отображаются в диспетчере задач Windows так, как если бы они выполнялись непосредственно из командной строки.

Исполняемые файлы Windows, выполняемые в WSL, обрабатываются аналогично собственным исполняемым файлам Linux — конвейерной передаче, перенаправлению и даже фоновому режиму работы.

Чтобы запустить средство Windows ipconfig.exe , использовать средство Linux grep для фильтрации результатов IPv4, а также средство Linux cut для удаления полей столбцов из дистрибутива Linux (например, Ubuntu), введите:

Давайте рассмотрим пример сочетания команд Windows и Linux. Откройте дистрибутив Linux (например, Ubuntu) и создайте текстовый файл: touch foo.txt . Теперь используйте команду Linux ls -la , чтобы отобразить список файлов прямого доступа и сведения об их создании, а также средство Windows PowerShell findstr.exe , чтобы отфильтровать результаты и отобразить только файл foo.txt :

Средства Windows должны иметь расширение файла, его регистр символов должен совпадать с регистром в имени файла и эти файлы должны быть исполняемыми. Неисполняемые файлы, в том числе сценарии пакетного выполнения и собственные команды командной строки, такие как dir , можно выполнять с помощью команды cmd.exe /C .

Например, отобразите список содержимого каталога C:\ файловой системы Windows, введя:

Или выполните команду ping , чтобы отправить запрос проверки связи на веб-сайт microsoft.com:

Параметры передаются в двоичный файл Windows без изменений. Например, следующая команда откроет C:\temp\foo.txt в notepad.exe .

Этот способ также будет работать:

Совместное использование переменных среды между Windows и WSL с помощью WSLENV

Решение WSL и Windows совместно используют WSLENV — специальную переменную среды, созданную для взаимодействия Windows и дистрибутивов Linux, запущенных в WSL.

Свойства переменной WSLENV :

  • она используется совместно и существует в средах Windows и WSL;
  • это список переменных среды, которые совместно используют Windows и WSL;
  • она позволяет форматировать список переменных среды для корректного использования в Windows и WSL.
  • она может использоваться в потоке между WSL и Win32.

До выпуска сборки 17063 единственной переменной среды Windows,, к которой могла получить доступ WSL, была PATH (это позволяло запускать исполняемые файлы Win32 из WSL). Начиная со сборки 17063, WSLENV поддерживается. WSLENV учитывает регистр.

Флаги WSLENV

В WSLENV доступны четыре флага, влияющие на способ преобразования переменной среды.

  • /p преобразовывает пути WSL и Linux в пути Win32 и наоборот;
  • /l указывает, что переменная среды представляет собой список путей;
  • /u указывает, что эту переменную среды следует добавлять только при запуске WSL из Win32;
  • /w указывает, что эту переменную среды следует добавлять только при запуске Win32 из WSL.

При необходимости флаги можно комбинировать.

Узнайте больше о WSLENV, ознакомившись с часто задаваемыми вопросами и примерами установки значения WSLENV для объединения других предварительно определенных переменных среды с суффиксом в виде косой чертой и флагами для указания способа перевода значения и передачи переменных скрипту. В этой статье также показано, как настроить среду разработки с помощью языка программирования Go для совместного использования GOPATH с WSL и Win32.

Читайте также:  Линукс для нетбука asus eee

Отключение взаимодействия

Пользователи могут отключить возможность запуска средств Windows для отдельного сеанса WSL, выполнив следующую команду в качестве привилегированного пользователя.

Чтобы повторно включить возможность запуска двоичных файлов Windows, закройте все сеансы WSL и повторно запустите bash.exe или выполните следующую команду от имени привилегированного пользователя.

Отключение взаимодействия не будет сохраняться между сеансами WSL, оно снова будет включено при запуске нового сеанса.

Источник

Возможно ли использовать Linux Desktop в Windows инфраструктуре?

Всем привет! На Хабре неоднократно поднимались вопросы о том, как подготовить дистрибутив Linux для ввода в Active Directory, а также для интеграции с некоторыми другими серверами Windows. При этом, до сих пор не было написано статьи о том, стоит ли вообще этим заниматься, и будет ли конечный результат стоить потраченных времени и усилий.

Почему возник этот вопрос? Меня попросили настроить Linux для ребят, которые утомились от обновлений и прожорливости Windows 10 (особенно на компьютере без SSD и с оперативной памятью DDR2). Кроме того, одним из неоспоримых плюсов Linux (и его признают даже его ярые противники) является его открытость бесплатность. Это тоже значимый аргумент.

Обычный пользователь в среднестатистической компании, компьютер использует для Word и Excel, браузера, плюс в редких случаях, работает с каким-либо удаленным приложением, например через RDP. Необычный пользователь, типа целого программиста, без значительных сложностей может попросить админов найти требуемую IDE, Jenkins, git, и что там еще нужно программистам? Мессенджеры, на отсутствие которых в Linux в соседней статье жалуются, в дистрибутиве имеются во всевозможном изобилии. Skype, Viber, ICQ, даже заблокированный в РФ клиент, полностью в наличии на официальных сайтах, прекрасно поддерживаются и в полной мере идентичны по UI с клиентами предназначенными для Windows.

Итак, смотришь на требования пользователей к системе, сравнишь их с возможностями Linux и думаешь, сплошные плюсы, а еще и экономия четко прослеживается. Почему же возникают какие-либо возражения к такой прекрасной идее как перевод пользователя с Windows, на Linux? Только лишь вредные привычки?

Я совсем не крутой пользователь открытых операционных систем, но некоторым минимальным практическим опытом который я получил (при переводе пользователей с Windows на Linux) хочу поделиться.

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

Ведь вполне может быть, что я не вижу каких-либо подводных камней, которые известны старшим и более опытным товарищам, буду искренне благодарен, если на такие, проблемы у обычного пользователя мне укажут. Искренне надеюсь, что изложенная мной информация получится воспроизводимой.

Подготовка локального репозитория

Linux (по крайней мере Ubuntu), как и Windows полностью поддерживает сетевую/локальную установку. Вполне можно было бы опустить этот шаг, так как linux прекрасно устанавливается и из интернета. Но учитывая, что установка системы, задача довольно часто повторяемая, мы попытаемся ее автоматизировать, а чтобы избежать ненужных проблем с внешним репозиторием, который мы не контролируем, подготовим виртуальную машину, с локальным репозиторием, на котором будут расположены установочные файлы системы, файл ответов, (а заодно, весь необходимый нам софт, а также будущие обновления).

Файлы установки и все дополнительное ПО, для LTS версии Ubuntu 20.04 Focal Fossa, занимают примерно 80 Гб.

В качестве ОС для виртуальной машины — я использовал Ubuntu Server 20.04 Это стабильный релиз, который будет полностью поддерживаться до 2025 года.

После окончания установки, задаем человеко-понятное имя нашему компьютеру

Устанавливаем пакет для клонирования репозитория

Хочу отметить, что в этой конфигурации показывается возможность управления количеством потоков и скоростью закачки файлов при клонировании репозитория, а также демонстрируется возможность клонировать внешние репозитории, не принадлежащие Canonical. Например, Google Chrome.

Читайте также:  Pdf принтер для windows 10 формат а1

Также, заслуживает внимания, что, дополнительно в конфигурации необходимо прописать ветку main/debian-installer, хотя она и является дочерней по отношению к ветке main, Это не было очевидным для меня, я не нашел чтобы об этом писалось раньше, и поначалу не мог понять в чем дело.

Необходимо выполнять команду sudo apt-mirror например, еженедельно, для обновления нашего репозитория — «сервера» обновлений клиентских компов.

Пример настройки автообновления репозитория с записью логов о обновлении

Установка веб-сервера (для раздачи файлов нашим будущим клиентам)

Для проверки, что все получилось как задумывалось, необходимо попытаться зайти на наш ip через браузер. В результате мы должны увидеть файлы репозитория.

Установка tftpd для установки ubuntu по сети

Разархивируем и рекурсивно копируем все найденные файлы библиотек .c32 из syslinux в /tftpboot любым удобным вам способом, а также создаем в /tftpboot папки pxelinux.cfg и папку linux

В /tftpboot/pxelinux.cfg будет находится меню загрузчика (файл с именем default)

В /tftpboot/linux должны находиться следующие файлы:

-файл ответов ubuntu2.cfg, загрузчик initrd.gz, файл ядра linux

Ниже пример preseed файла (файла ответов).

Дополнять его можно бесконечно, но с предложенной настройкой без единого нажатия клавиши система полностью автоматически устанавливается. (правда, должен признаться, что в файле ответов предназначен пользователь и его пароль, таким образом система будет установлена запароленной

Ядро и загрузчик были получены по этому адресу:

Файл ответов позволяет автоматически выбрать язык системы, язык установки системы, задать требуемое разбиение и форматирование диска и даже задать хэши паролей на загрузчик и локального администратора (на момент установки — единственного пользователя ПК).

При предварительно настроенном DHCP (опции 66 и 67) включающих загрузочный файл и IP адрес tftp сервера после загрузки и выбора строчки «Install Ubuntu 20.04» Все остальное будет сделано без нашего вмешательства. (Система будет устанавливаться около 25-30 минут).

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

Установка занимает около 25-30 минут. и проходит полностью автоматически. Для обычного пользователя этого достаточно.

Но мы ведь говорим о работе Ubuntu в корпоративной среде, а значит речь пойдет об интеграции с Active Directory, Exchange, DFS и т.д. Может быть где-то на пути поиска взаимодействия с этими службами возникнут неполадки? Может быть что-то из изложенного выше уже на данном этапе сделано неправильно? В следующей части статьи напишу о моем пути интеграции Linux систему в корпоративную Windows инфраструктуру.

Для управления удаленными компьютерами и их настройки необходимо установить на «сервер» операционную систему с репозиторием систему управления конфигурациями Ansible

Установка и настройка Ansible (для авто настройки и администрирования Ubuntu)

После заполнения инвентори файла мы должны соединить клиентскую машину с сервером.

Для проверки успешности настроек введем команду.

Если мы видим ответ от клиентского ПК наши настройки выполнены верно.

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

Для управления поведением компьютера в Ansible обычно создаются роли, но так как у нас тривиальная задача просто установить, удалить, настроить и ввести в домен компьютер c Ubuntu воспользуемся простым скриптиком (в терминогогии Ansible плэйбуком).

Прежде чем запустить плэйбук крайне важно зашифровать логин и пароль под которыми мы будем вводить компьютер в домен, в идеале это должна быть сервисная учетная запись, и средствами ансибла она должна быть зашифрована.

Для запуска скрипта после приведения скрипта к рабочему виду:

При запуске скрипта компьютер несколько раз должен быть перезагружен. После перезапуска скрипта вручную с сервера, после перезагрузки клиента, скрипт продолжит выполнение с того момента, на котором остановился (предварительно проиндексировав предыдущие шаги). Действие скрипта (вместе с перезагрузками) займет не более 10 минут.

Вот этот скрипт:

Скрипт Ansible ссылается на несколько дополнительных скриптов конфигурирующих kerberos, sssd, samba и еще некоторые важные файлы

Источник

Оцените статью