Как установить приложения на отдельный жесткий диск?

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

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

  • (РАЗРЕШЕНО ->) У меня также возникают проблемы с поиском "/ etc /". В частности, чтобы изменить Конки.
    Поиск по этому термину приводит только к случаям, когда люди говорят вам, чтобы получить доступ к этому файлу, а не как получить к нему доступ.
14
задан 16 July 2013 в 12:03

3 ответа

Существует большое различие между 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.

25
ответ дан 16 July 2013 в 12:03

Решение, которое я использовал для своего Chromebook, состоит в том, чтобы не устанавливать пакеты, а загружать их аналог .tar.gz.

Возможно, это не то, что вы ищете, но если у вас очень маленький диск и вы хотите отделить жизненно важное программное обеспечение (рабочий стол GNOME, веб-браузер) от дополнительного программного обеспечения (GIMP, IDE, игры), чтобы сэкономить на локальном пространстве и обеспечить работу компьютера без внешнего диска, это лучший вариант решение на данный момент IMO.

2
ответ дан 16 July 2013 в 12:03

TL; DR

  1. Загрузите внешний USB-диск с только что установленной версией Ubuntu, и я предполагаю, что / dev / sda - это ваш SSD, а / dev / sdb - это ваш жесткий диск.

  2. Создайте раздел на жестком диске, содержащий все приложения, которые вы хотите установить (скажем, 64 ГБ), используя gparted , и я предполагаю, что это будет третий раздел, который вы создадите на своем жестком диске ( / dev / sbd3 )

  3. выполните следующие команды:

     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
     
  4. 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
     
  5. перезагрузка и тестирование

Длинная версия:

Unix / Linux / Ubuntu задумывалась как серверная ОС с настольным компьютером как второстепенная мысль, тогда как Windows задумывалась как ОС рабочего стола, а сервер появился как второстепенная. .

Таким образом, стандарт иерархии файловой системы Linux позволяет вам иметь неограниченное количество дисков / разделов, которые будут размещены где угодно, и привязать их к правильному диску или разделу с общим прозрачность для пользователя , тогда как ОС Windows ограничена максимум 24 доступными дисками / разделами (с C: по Z: как A: и B: зарезервированы для гибких дисков.)

Большинство приложений, которые вы устанавливаете самостоятельно, устанавливаются в / opt / и / usr / bin , поэтому установите Ubuntu обычно, а затем используйте следующие шаги, где я предполагаю, что / dev / sda - это ваш SSD, / dev / sdb - это ваш жесткий диск, а / dev / sdd - это ваш USB-накопитель:

  1. Загрузите внешний USB-диск с только что установленной версией Ubuntu.
  2. Create раздел на жестком диске, содержащий все приложения, которые вы хотите установить (скажем, 64 ГБ) с использованием gparted , и я предполагаю, что это будет третий раздел, который вы создадите на своем жестком диске ( / dev / sbd3 )
  3. Подключите этот раздел во временный каталог:

     mkdir / media / apps
    смонтировать / dev / sdb3 / media / apps
     
  4. скопируйте существующие / opt и / usr / bin туда:

     mkdir / media / apps / usr
    cp --preserve = all --recursive / opt / media / apps
    cp --preserve = all --recursive / usr / bin / media / apps / usr
     
  5. 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
     
  6. перезагрузите и проверьте

  7. Если все работает правильно, перезагрузите USB-накопитель еще раз и удалите все в / dev / sda1 / opt и / dev / sda1 / usr / bin , чтобы освободить дисковое пространство, которое все еще используется, устаревшие каталоги, уже смонтированные где-то еще.

Предупреждение: последняя команда может также вызвать сбой вашей системы в маловероятном случае / dev / sbd3 не монтируется из-за сбоя HW

5
ответ дан 11 October 2019 в 12:24

Другие вопросы по тегам:

Похожие вопросы: