Як встановити програми на окремий hdd?


10

Мені так добре було з вікнами, тепер я відчуваю себе повним ідіотцем.

У мене є SSD для ubuntu і хочу встановити більшість моїх програм на окремий жорсткий диск, але в мене немає поняття, як.
Усі пошуки, які я намагався, виявляються лише при установці з подвійним завантаженням.

  • (ВИРІШЕНО ->) У мене також виникають проблеми з пошуку "/ тощо /". Зокрема, для модифікації Конкі.
    Пошук цього терміна виявляється лише у випадках, коли люди говорять вам про доступ до цього файлу, а не про те, як дістатися до нього.

1
Погляньте на Це , це почне вас.
Мітч

У мене склалося враження, що все поширюється з домашньої папки. Уопс. Ця сторінка, яку ви пов’язали, не була корисною щодо моєї проблеми, але я зараз читаю її та багато чого вчу, тож дякую.
плагіоктор

Я додав теги mount і fstab; Ви можете робити те, що описуєте, встановивши вручну окремі файлові системи для монтажу на певні розділи або диски.
belacqua

@belacqua чи є інший спосіб, крім цього? Я не просто хочу конкретних файлових систем на іншому диску, я хочу, щоб усі файлові системи певних програм. Таким чином я можу сортувати їх за тим, наскільки вони інтенсивні в моїй системі, маючи ігри / virtualbox / тощо повністю на своєму SSD та такі речі, як libreoffice / thunderbird повністю на одному з жорстких дисків.
plaguedoctor

Визначити, де може перебувати дана установка та її файли, не так просто - відповіді дивіться за посиланням, згаданим Mitch. Ви також можете використовувати такі речі, як символьні посилання, але моя рекомендація - почати просто. Знайдіть приклад програми, задайте тут конкретне запитання (або модифікуйте це, щоб бути менш загальним), і перейдіть звідти. Або експериментуйте обережно.
belacqua

Відповіді:


22

Існує велика різниця між Windows та GNU / Linux. У Windows звичайно, що кожна програма разом з усіма бібліотеками, від яких вона залежить, встановлюється в окрему папку. Це часто призводить до багато витраченого дискового простору через те, що бібліотеки встановлюються кілька разів для кожної програми, яка їх використовує.

У Linux програми встановлюються відповідно до стандарту ієрархії файлової системи (FHS). Це означає, що всі бібліотеки, від яких залежать програми, встановлюються в загальному виділеному місці, так що вони зазвичай встановлюються лише один раз, незалежно від того, скільки програм ними користується. Також програми побудовані таким чином, що всі вони використовують однакову версію певної бібліотеки. Це економить дисковий простір (і оперативну пам’ять під час виконання), але має недолік, що не можна вільно встановлювати програми на різні розділи або на жорсткі диски, принаймні, без редагування файлів конфігурації системи (наприклад, /etc/ld.so.conf.d щоб включити різні папки бібліотеки).

Оскільки система пакетів Debian була реалізована з урахуванням FHS, наскільки я знаю, немає простого способу встановити пакунки Debian у папку, відмінну від тієї, в яку вони мали бути розміщені, і щоб вони працювали без ручного переміщення після цього редагування файлів. Це відбувається тому, що шляхи часто жорстко кодуються під час компіляції. Тож навіть якщо ви встановите пакет у іншу папку, наприклад, за допомогою dpkg --instdir=folder/ package.debкоманди в командному рядку, програма все одно шукатиме конфігурацію в '/ etc', а не в 'папці / тощо', а в файлах конфігурації, що постачаються з пакет, звичайно, був встановлений у "папку / тощо" ... Програма також не буде додана в меню, оскільки файли меню повинні бути в "/ usr / спільних програмах", а не в папці / usr / share / додатки.

Звичайно, ви можете вручну налаштувати та компілювати програму зі свого вихідного коду, щоб вона могла встановити двійкові та частини даних куди завгодно, при цьому все-таки встановлюючи конфігураційні файли у місця, сумісні з FHS, але це те, що я рекомендую лише для досвідчені користувачі. Якщо ви збираєтесь збирати з джерела, перегляньте checkinstall , інструмент, який автоматично створює пакети debian.

Ще один варіант, запропонований на linuxfromscratch , - розпакувати пакунок у відповідному місці та потім створити символічні посилання на всі встановлені файли у відповідних місцях FHS.

Оскільки в коментарях ви посилалися на ігри: Багато ігор, які не купуються через програмний центр Ubuntu, надходять як виконуваний файл інсталятора, і вони, звичайно, можуть бути встановлені у будь-яку папку, як правило, в папку вашого домашнього каталогу. Ігри Windows, які запускаються за допомогою WINE, також можна встановити в будь-який каталог, який ви хочете. Для вина існує змінна середовище під назвою WINEPREFIX, за допомогою якої ви можете встановити численні незалежні папки WINE, кожна з яких має власний віртуальний диск C: Прочитайте сторінку WINE man для отримання додаткової інформації.

Навіть якщо ігри / програми надходять як пакети Debian, ви можете подивитися вміст пакета у вашому улюбленому менеджері архівів. Якщо гра буде встановлена ​​в / opt, зазвичай можна сміливо встановити її в іншу папку, оскільки / opt часто використовується як місце установки для програм, які не дотримуються FHS.


Правильні та гідні нагороди O
Rinzwind

1
Тим не менш, це не є повною, оскільки я не пояснив детально, що потрібно, щоб встановити пакунок у довільному місці роботи, які файли потрібно редагувати та які змінні середовища потрібно встановити. Я просто боюся, що тоді це стане романом середнього розміру ...
soulsource

1
Я б не турбував. Просто монтуйте / тощо / в іншому місці. Це займає 90% завантаження диска з ssd.
Rinzwind

5

TL; DR

  1. Завантажте зовнішній USB-диск із встановленою вами версією Ubuntu, і я припускаю, що /dev/sdaце ваш SSD і /dev/sdbваш жорсткий диск.

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

  3. виконайте такі команди:

    mkdir /media/apps
    mount /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 nanofstabна /dev/sda1/etc/включати наступне право після /запису (кореневої каталог)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      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. Створіть розділ на своєму жорсткому диску, щоб містити всі програми, які ви хочете встановити (скажімо, 64 Гб), використовуючи gparted, і я припускаю, що це буде третій розділ, який ви будете створювати на своєму жорсткому диску ( /dev/sbd3)
  3. Змонтуйте цей розділ у тимчасовому каталозі:

    mkdir /media/apps
    mount /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 nanofstabна /dev/sda1/etc/включати наступне право після /запису (кореневої каталог)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  6. перезавантажити та протестувати

  7. Якщо все працює правильно, перезавантажувати до USB палки знову і видалити всі дані /dev/sda1/optі /dev/sda1/usr/binповернути дисковий простір до сих пір використовується вже застарілі каталоги вже встановлені де - то в іншому місці.

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


Windows фактично має таку саму підтримку для монтажу накопичувачів на некорінні шляхи вже близько десяти років. Ці літери диска також можуть бути відображені на кожного користувача, так що H: \ може бути домашнім каталогом користувача. Немає великого сюрпризу: лінія Windows NT натхненна VMS, дуже багатокористувацькою системою. Також Unix не був задуманий як ОС сервера: AT&T робив телефонні комутатори. А UNIX спеціально відрізняється від свого натхнення Multics тим, що спочатку є менш орієнтованою на багато користувачів - у цьому просто не було потреби в телефонній комутації.
MSalters

@MSalters Вау, не знав біт телефонного перемикача AT&T ... Я пам’ятаю частину VMS / NT, і що M $ найняв DEC Principle Engineer, і OS / 2 частину теж, але до цього це був Single- користувач переважає багатозадачний оболонку робочого столу. > :-) Оновлено!
Fabby

1
Windows , також підтримує небуквених диски ( 1:, і !:т.д.), так само як і деякі версії DOS (з іншими персонажами, і [:т.д.). Windows не обмежується 24-ма розділами (шукайте точки монтажу гучності). Ранні версії Windows (до 95 років) використовували спільні багатозадачні завдання, що не мають переваги, між процесами Windows; тільки VOS VOS мали переважну задачу (в покращеному режимі).
Стівен Кітт

1
Раніше я працював в AT&T, в групі UNIX. Це не почалося життя як комутатор телефону.
stevegt

@MSalters Unix, схоже, не має нічого спільного з телефонними комутаторами, окрім того, що відповідальна компанія розробила обоє; і, здається, він був багатокористувацьким дуже рано, приблизно в той час, коли ім'я було придумано. Дивіться цю відповідь на SE RC.
Пітер -

2

Я використовував для свого Chromebook рішення не встановлювати пакунки, а скоріше завантажувати їх .tar.gz.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.