Мне было так хорошо с окнами, теперь я чувствую себя полным идиотом.
У меня есть SSD для Ubuntu, и я хочу установить большинство своих программ на отдельный жесткий диск, но понятия не имею, как.
Все поиски, которые я пробовал, включаются только при установке с двойной загрузкой.
Существует большое различие между Windows и GNU / Linux. В Windows, как правило, каждая программа вместе со всеми библиотеками, от которых она зависит, устанавливается в отдельную папку. Это часто приводит к потере большого количества дискового пространства из-за того, что библиотеки устанавливаются несколько раз для каждой программы, которая их использует.
В Linux программы устанавливаются согласно Стандарту иерархии файловой системы (FHS). Это означает, что все библиотеки, от которых зависят программы, устанавливаются в общем выделенном месте, поэтому обычно они устанавливаются только один раз, независимо от того, сколько программ их использует. Кроме того, программы построены таким образом, что все они используют одну и ту же версию определенной библиотеки. Это экономит дисковое пространство (и оперативную память во время выполнения), но имеет недостаток, заключающийся в том, что нельзя свободно устанавливать программы на разные разделы или жесткие диски, по крайней мере, без редактирования файлов конфигурации системы (например, /etc/ld.so.conf.d для включения различных библиотечных папок).
Поскольку система пакетов Debian была реализована с учетом FHS, насколько мне известно, нет простого способа установить пакеты Debian в папку, отличную от той, в которой они были предназначены должны быть размещены и работать без ручного перемещения и последующего редактирования файлов. Это потому, что пути часто жестко запрограммированы во время компиляции. Таким образом, даже если вы установите пакет в другую папку, например, используя dpkg --instdir = folder / package.deb
в командной строке, программа все равно будет искать его конфигурацию в '/ etc' , а не в папку / etc, но файлы конфигурации, которые были отправлены с пакетом, конечно же, были установлены в папку / etc ... Программа также не будет добавлена в меню, поскольку файлы меню должны находиться в '/ usr / share applications', а не в папке / usr / share / applications.
Конечно, вы можете вручную настроить и скомпилировать программу из ее исходного кода , чтобы она установила двоичные файлы и части данных где бы вы ни хотели, при этом по-прежнему устанавливая файлы конфигурации в места, совместимые с FHS, но это то, что я рекомендую только для опытных пользователей. Если вы собираетесь компилировать из исходников, обратите внимание на checkinstall , инструмент, который автоматически создает пакеты debian.
Другой вариант, который был предложен на linuxfromscratch , - распаковать пакет в подходящее место, а затем создать символические ссылки на все установленные файлы в соответствующих местах FHS.
Поскольку в комментариях вы имели в виду игры: Многие игры, которые не были куплены через Центр программного обеспечения Ubuntu, поставляются в виде исполняемого файла установщика , и их, конечно же, можно установить в любую папку, обычно в подпапку вашего домашнего каталога. Игры для Windows, запускаемые с использованием WINE, также можно установить в любой каталог, который вы хотите. Для Wine существует переменная среды WINEPREFIX, с помощью которой вы можете настроить множество независимых папок WINE, каждая из которых включает свой собственный виртуальный диск C :. Прочтите справочную страницу WINE для получения дополнительной информации.
Даже если игры / программы поставляются как пакеты Debian, вы можете просмотреть содержимое пакета в своем любимом менеджере архивов. Если игру собираются установить в / opt, обычно вы можете безопасно установить ее в другую папку, так как / opt часто используется в качестве места установки для программ, не поддерживающих FHS.
Решение, которое я использовал для своего Chromebook, состоит в том, чтобы не устанавливать пакеты, а загружать их аналог .tar.gz.
Возможно, это не то, что вы ищете, но если у вас очень маленький диск и вы хотите отделить жизненно важное программное обеспечение (рабочий стол GNOME, веб-браузер) от дополнительного программного обеспечения (GIMP, IDE, игры), чтобы сэкономить на локальном пространстве и обеспечить работу компьютера без внешнего диска, это лучший вариант решение на данный момент IMO.
Загрузите внешний USB-диск с только что установленной версией Ubuntu, и я предполагаю, что / dev / sda
- это ваш SSD, а / dev / sdb
- это ваш жесткий диск.
Создайте раздел на жестком диске, содержащий все приложения, которые вы хотите установить (скажем, 64 ГБ), используя gparted , и я предполагаю, что это будет третий раздел, который вы создадите на своем жестком диске ( / dev / sbd3
)
выполните следующие команды:
mkdir / media / apps
смонтировать / dev / sdb3 / media / apps
mkdir / media / apps / usr
cp --preserve = all --recursive / opt / media / apps
cp --preserve = all --recursive / usr / bin / media / apps / usr
sudo nano
the fstab
on / dev / sda1 / etc /
, чтобы включить следующее сразу после записи /
(корневой каталог)
/ dev / sdb3 / media / apps: ошибки ext4 = remount-ro 0 0
/ opt / media / apps / opt none по умолчанию, привязка 0 0
/ usr / bin / media / apps / usr / bin нет значений по умолчанию, привязка 0 0
перезагрузка и тестирование
Unix / Linux / Ubuntu задумывалась как серверная ОС с настольным компьютером как второстепенная мысль, тогда как Windows задумывалась как ОС рабочего стола, а сервер появился как второстепенная. .
Таким образом, стандарт иерархии файловой системы Linux позволяет вам иметь неограниченное количество дисков / разделов, которые будут размещены где угодно, и привязать их к правильному диску или разделу с общим прозрачность для пользователя , тогда как ОС Windows ограничена максимум 24 доступными дисками / разделами (с C:
по Z:
как A:
и B:
зарезервированы для гибких дисков.)
Большинство приложений, которые вы устанавливаете самостоятельно, устанавливаются в / opt /
и / usr / bin
, поэтому установите Ubuntu обычно, а затем используйте следующие шаги, где я предполагаю, что / dev / sda
- это ваш SSD, / dev / sdb
- это ваш жесткий диск, а / dev / sdd
- это ваш USB-накопитель:
/ dev / sbd3
) Подключите этот раздел во временный каталог:
mkdir / media / apps
смонтировать / dev / sdb3 / media / apps
скопируйте существующие / opt
и / usr / bin
туда:
mkdir / media / apps / usr
cp --preserve = all --recursive / opt / media / apps
cp --preserve = all --recursive / usr / bin / media / apps / usr
sudo nano
fstab
на / dev / sda1 / etc /
, чтобы включить следующее сразу после записи /
(корневой каталог)
/ dev / sdb3 / media / apps: ошибки ext4 = remount-ro 0 0
/ opt / media / apps / opt none по умолчанию, привязка 0 0
/ usr / bin / media / apps / usr / bin нет значений по умолчанию, привязка 0 0
перезагрузите и проверьте
/ dev / sda1 / opt
и / dev / sda1 / usr / bin
, чтобы освободить дисковое пространство, которое все еще используется, устаревшие каталоги, уже смонтированные где-то еще. Предупреждение: последняя команда может также вызвать сбой вашей системы в маловероятном случае / dev / sbd3
не монтируется из-за сбоя HW