Установка і використання ubuntu на usb флешці, російськомовна документація по ubuntu

Досить часто виникає бажання або необхідність поставити Ubuntu на USB флешку і отримати можливість користуватися своєю улюбленою ОС на будь-якому комп'ютері (аби була можливість завантажитися з USB).
Робиться це просто - вантажимося з LiveCD Ubuntu (або з LiveUSB 1)) і ставимо систему на флешку. При цьому нам не важливо яка ос встановлена ​​на комп'ютері. Все що потрібно це сам комп'ютер, LiveCD / USB і окрема флешка, на яку і будемо ставити систему.

Більш детально процес установки Ubuntu на флеш-накопичувач описаний тут.

Як варіант - можна в якості комп'ютера використовувати емулятор: VirtualBox або VmWare, (тільки в них буває складно підключити USB для установки Ubuntu). При установці через емулятор не потрібен окремий носій з Live системою - образ LiveCD просто підключається в віртуальний привід CD-ROM.

І часто підхід до цього питання, що називається, «в-лоб» розчаровує низькою продуктивністю і тим, що флешка швидко вмирає.

Багато зможуть заперечити, що маючи таку флешку з встановленою ОС вони нею користуються багато місяців або навіть років. Якщо уточнити, то з'ясовується, що користуються то їй довго, а ось вантажаться з неї рідко і працюють не підлягає. Якщо ж працювати з такою флешки щодня, по багато годин, то «смерть» флешки не змусить себе довго чекати: 2-3 місяці, може більше, може менше, залежить від флешки (з особистого досвіду творця початковій версії цієї статті Sly_tom_cat Sly_tom_cat Don # 't worry, be happy! Пітер).

Крім того і сам процес установки часом призводить до неприємних наслідків.

Але не треба впадати у відчай і опускати руки .... Навіть з не дуже хорошої сировини можна зробити ..., якщо не цукерку, то, по крайней мере, щось їстівне!
Розберемося в причинах сумного результату і можливих методів поліпшення ситуації.

За замовчуванням установник Ubuntu пропонує журнальованою файлову систему EXT4 для створюваних розділів даних.
Крім того, завантажувач (GRUB) за замовчуванням ставиться на перший диск в системі, як правило, - це вбудований HDD комп'ютера.
Установник Ubuntu, досить наполегливо, просить створити розділ підкачки (якщо ви його не створюєте, то отримаєте повідомлення і повинні будете підтвердити своє бажання встановити систему без swap-розділу).
Прийнявши ці умовчання, ми відразу створюємо дві проблеми.

На флешці створюються розділи з файловою системою, яка при роботі буде здійснювати велику кількість записів на флешку (чим скоротить її час життя). Це стосується і розділів EXT4 і swap-розділу.

Завантажувач встановиться так, що без флешки ваш комп'ютер не зможе завантажиться.

Розберемо докладніше ці дві проблеми

Флеш-пам'ять відрізняється від жорстких дисків тим, що кількість циклів запису зазвичай обмежена числами 10 і 100 тисяч записів (для різних типів флеш-пам'яті).

Для жорстких дисків такий параметр (число циклів запису) взагалі майже ніколи не вказується - там швидше відбувається механічне зношування елементів диска. А магнітний шар на поверхні диска може перезаписуватися майже нескінченно.

Схеми пам'яті з витримують до 10 тисяч записів коштують набагато дешевше схем витримують 100 тисяч ... як ви думаєте - якими схемами комплектуються недорогі флешки, що знайшли широке поширення?
Але і висока ціна флешки теж не говорить про підвищену жевучесті - тут ключове слово - тип пам'яті - MLC (Multi-level cell, багаторівневі комірки пам'яті) витримує близько 10 тисяч записів; SLC (Single-level cell, однорівневі осередки пам'яті) - понад 100 тисяч. Дорожчі флешки дійсно живуть довше, але досягається це іншими засобами (про них - трохи пізніше)

Здається що 10/100 тисяч - це багато, але розберемося як ці цикли записи «з'їдаються» при роботі ОС.

Запис на флеш-носій відбувається по-блочно (як правило - десятки кілобайт), і запис послідовно двох байт в файл з інтервалом між записами в кілька хвилин викличе два записи одного і того ж блоку пам'яті (тобто оновляться два рази кілька тисяч осередків).

При роботі файлової системи (ФС) деякі службові структури ФС оновлюються постійно:

журнал (для журнальованою ФС) - чим частіше він пишеться, тим вище ймовірність збереження цілісності ФС при збоях системи або харчування. Частота запису в журнал, як правило змінювана, але значення за замовчуванням не зовсім підходять для роботи з флеш-пам'яттю, а збільшення періодів між записом - призводить до збільшення ймовірності втрати цілісності ФС при збої.

i-node (спеціальна структура в якій зберігається заголовок файлу або каталогу) - при кожному зверненні (навіть читання) до файлу або каталогу в i-node прописується дата / час останнього звернення. Здавалося б - всього кілька байт, але згадаємо про блочну запис, і тому, що запис їх йде при кожному зверненні до файлу (прочитали байт - змінилися, ще байт - знову змінилося).

Тимчасові файли і логи - так само часто оновлюються.

SWAP-розділ - якщо він використовується в роботі системи, то запис в нього теж дуже інтенсивна.

Крім того, потрібно не забувати, що ліміт циклів запису діє на кожну клітинку пам'яті. І якщо на флешці в один і той же блок зробити 10 тисяч записів, а в інші зробити по 100 записів, то блок, куди було записано 10 тисяч раз, на записи 10тисяч + скільки-то «помре», а контролер флешки, виявивши 1 битий блок, може заявити, що померла вся флешка. А навіть якщо він цього не зробить, то цей блок буде містити важливу для роботи системи або ФС інформацію 2). і результат буде практично тим же - раптова зупинка системи і неможливість прочитати дані з флешки. (!)

Як боротися з усім цим?
Для початку зрозуміємо і приймемо як даність:

Флешки не вічні і вмирають не попереджаючи!

Усвідомивши це зрозуміємо, що і

Система на флешці - не може бути довговічною і надійною.


А зрозумівши і прийнявши це, задумаємося: а чи потрібна для такої системи надійність журнальованою ФС (такою дорогою ціною як скорочення часу життя флешки і системи на ній)?
Однозначно - ні.
Отже, нам буде потрібно EXT4 з відключеним журналом 3). Якщо розбиратися з відключенням журнал в EXT3 / 4 не хочете - просто скористайтеся EXT2.

Є й інші ФС, і настройки, які можуть продовжити життя флешці. Ці рішення можуть дати великі переваги. Якщо є бажання - то пошукайте інші варіанти. Особливо звертає на себе увагу опція ssd файлової системи btrfs (!?) ...

Позбутися від запису дати / часу останнього доступу до файлів і тек в i-node допомагають опції монтування файлових систем noatime. Її, після установки системи, потрібно буде прописати в файлі / etc / fstab для всіх розділів системи, які розташовані на флешці.

Взагалі, ці опції не тільки кількість записів на флешці скорочують, але і на жорсткому диску швидкість роботи ФС збільшують.

В / etc / fstab потрібно прописати рядок:

Точно також варто вчинити і з / run (раніше відомий як / var / run) і / var / lock (в цих каталогах зберігається службова інформація актуальна тільки на час поточної сесії, обсяг - малесенький, а ось поновлення досить регулярні). На них ліміт розміру можна не ставити. Можна піти далі і розмістити в пам'яті і логи (/ var / log), однак без балок на пристрої постійного зберігання даних (в нашому випадку - на флешці) буде вкрай важко розібратися зі збоєм системи, що викликає перезавантаження (після перезавантаження - все що було в пам'яті - загубиться і логи будуть «порожні» - тільки те, що туди запишеться з моменту завантаження системи). Ліміт size для / var / log варто задавати порядку 6-10Мб (для типового десктоп варіанти).
Загальний вигляд файлу / etc / fstab буде приблизно таким:

У прикладі на флешці створений корінь і окремий / home 4). Якщо є ще якісь розділи з флешки - то їм теж прописуємо noatime, nodiratime.

Швидкість запису на флешку - теж «хворе місце» нашої системи, і скорочуючи число циклів запису на флеш ми не тільки продовжимо час її життя, але і швидкість роботи ОС покращимо.

А тут все просто - завантажувач (GRUB) треба ставити на флешку. Якщо ви залишите запропоновану монтажником установку (на перший жорсткий диск в системі) то в MBR жорсткого диска пропишеться частина коду GRUB, який стане шукати іншу частину свого коду на розділі, куди буде записаний / boot при установці системи (тобто на флешці) . Витягнувши флешку з комп'ютера ви не дасте коду GRUB-а на жорсткому диску знайти своє продовження. І комп'ютер не зможе завантажити ОС. Відновити роботу GRUB - просто. Якщо ж треба відновлювати завантажувач Windows, то варто пошукати інформацію по відновленню завантажувача на будь-якому профільному форумі. Але краще бути уважним при установці, і не створювати собі зайву роботу.

Якщо ми хочемо користуватися системою на флешці довго, і не отримати розчарування від втрати даних, то потрібно робити так:

при установці Ubuntu на флешку:

тип ФС для розділів системи вибираємо EXT4 з відключеним журналом (або, на худий кінець, - EXT2).

swap не створимо (а якщо на комп'ютері є розділ swap - то говоримо інсталятори - не використовувати його).

GRUB встановлюємо обов'язково на флешку, де і створюємо розділи для установки системи.

прописуємо в / etc / fstab опцію noatime для всіх розділів розміщених на флешці.

прописуємо в / etc / fstab монтування / tmp, / run, / var / lock (і, можливо, / var / log) в tmpfs (не забуваємо про обмеження розмірів).

При використанні системи потрібно регулярно робити резервну копію важливих даних на інший носій 5) (не забуваємо про невисоку надійність ОС на флешці і можливу раптову кончину флеш-пам'яті).

А при використанні на комп'ютері з невеликим об'ємом оперативної пам'яті (1 Гб і менше) намагаємося не запускати по багато ресурсоємних завдань одночасно або вивчаємо і налаштовуємо ramzswap.

Крім зазначеного, можна застосувати і інші прийоми оптимізації продуктивності системи (ці прийоми виходять за рамки даної статті, але їх легко знайти в Internet-е).

А головне - ніколи не забуваємо про висновок, до якого ми прийшли на початку цієї статті. повторю:

ОС, встановлена ​​на флешку не може бути такою ж надійною і довговічною як встановлена ​​на жорсткий диск.

Є одна прикра помилка інсталятора (можна сказати особливість 6)), яка не дозволяє встановити Ubuntu на той же фізичний диск з якого завантажився Live образ 7). Тобто якщо ви захочете завантажившись з флешки на неї ж і поставити Ubunut (в інший розділ) - то вам це не вдасться. Обійти цю «особливість» можна видаливши «руками» запис про примонтировать розділі з флешки з / etc / mtab.

Зовнішній жорсткий диск не страждає малим числом циклів запису, однак, операційна система, працюючи з диском по досить повільного інтерфейсу (зазвичай - USB2. USB3 і e-SATA інтерфейси - значно швидше, але на момент написання статті - ще не сильно поширені), також вимагає оптимізації. Тут стануть в нагоді і noatime, а також варто подумати - а чи потрібен swap, та й / tmp корисно також розмістити в пам'яті. А ось логи розміщувати в пам'яті - не варто. Ну, а крім того, зовнішній диск - це зовсім інший розмір і вага (!), Та й падіння для цих пристроїв - вкрай небезпечні.

Зовнішній SSD диск - досить дороге рішення. Теж не маленький, хоча і легше зовнішнього жорсткого диска і падінь - майже не боїться (як і флешка). І там теж є обмеження по числу циклів запису 8). але контролери твердотільних дисків використовують спеціальні алгоритми перерозміщення записуваних блоків з урахуванням знань про те, скільки записів було зроблено в кожен блок пам'яті. Ці алгоритми значно подовжують тривалість життя такого носія інформації.

Спрощені алгоритми перерозміщення блоків використовуються і в деяких (як правило - не найдешевших) флешках. Для їх роботи потрібно як надмірна кількість осередків пам'яті, так і більш швидкий і «розумний» контролер. Власне «особливий» контролер і доп. (Який недоступний користувачам) пам'ять і підвищують вартість флешки ... хоча, звичайно основне підвищення ціни роблять маркетологи, як зазвичай (!)

Можна піти й іншим шляхом - змінити дистрибутив. Є дистрибутиви спеціально «заточені» на роботу з флешки (не беруся тут перераховувати їх всі - їх легко знайти). Яскравим представником таких дистрибутивів є Puppy Linux (русифіковані збірки - PuppyRus Linux). Дистрибутив цей зібраний минималистично 9) і з використанням самих скромних (за розмірами) програм. Це дозволяє в процесі завантаження розмістити всю файлову систему Linux в оперативній пам'яті 10). А в процесі вимикання системи всі зміни в ФС (вироблені за час роботи) записуються однократно назад на флешку 11). Зміни можна скинути і в процесі роботи, якщо є побоювання наприклад у можливому раптовому відключенні харчування, ну або просто - що б бути спокійним, що ні загубиться нічого. А найпривабливіше для любителів Ubuntu в тому, що є збірки Puppy засновані на Ubuntu. Сайт проекту PuppyRus містить багато корисної інформації та інструкцій.

Власне LiveUSB, створена з файлом збереження, по суті своїй мало відрізняється від Ubuntu встановленої на флешці. Разом з тим, є і ряд принципових відмінностей.

Коротенько, як влаштована і працює LiveUSB:
При створенні LiveUSB в файлову систему флешки (FAT) копіюється вміст CD (або DVD), на флешку встановлюється простенький завантажувач syslinux, і в корені флешки створюється спеціальний файл збереження (всередині якого створюється файлова система EXT2) - casper.rw
Коли така флешка завантажується, то корінь файлової системи монтується «хитрим» способом: спочатку як корінь монтується спеціальний файл з упакованої, доступною тільки для читання файлової системою (SquashFS), а потім «поверх» нього монтується casper.rw в режимі запис / читання. Виходить, що всі необхідні для роботи системи файли лежать в SquashFS, а нові та оновлені файли - в casper.rw. При запиті до файлу спочатку перевіряється чи немає його в casper.rw, а потім він шукається в SquashFS, таким чином навіть системні файл можна відновити і працювати з новими версіями.
Каталоги / tmp, / run, / var / lock на LiveUSB теж монтуються в пам'ять (tmpfs)

Що ж ми отримуємо стосовно цікавлять нас аспектам: Запис на флешку йде приблизно в такому ж обсязі і його не вийде скоротити (додавши noatime в опції монтування в / etc / fstab) тому монтування кореня відбувається на етапі ініціалізації ядра системи і в / etc / fstab Live системи просто немає монтування кореня.
Продуктивність по запису (власне це хворе місце ми особливо і не розглядали при розмові про Ubuntu встановленої на флешку) тут буде ще гірше, запис йде в ФС EXT2, а вона лежить в фалі на ФС FAT.
Додатково, флешка завжди зберігає один і той же набір системних файлів в SquashFS і будь-які оновлення системи будуть займати місце в casper.rw, але не звільнятимуть місце в SquashFS і це може стати проблемою при невеликому обсязі флешки.

В «сухому залишку» - у LiveUSB немає особливих переваг 12) перед правильно встановленої на флешку системою, а недоліки - присутні.