Установка Linux на флешку
Полноценная операционная система на небольшом внешнем носителе — это очень удобно. Вы можете запустить систему практически на любом компьютере, а также иметь всегда под рукой все ваши файлы и данные, и вам больше не нужно держать на основном диске большое количество систем.
Именно по этим причинам много пользователей компьютера интересуются как выполняется установка Linux на флешку, возможно ли это, и если возможно, то как все правильно реализовать. В этой статье мы попытаемся ответить на такие вопросы. А также подробно разберем процесс установки на флешку для одного из самых популярных дистрибутивов — Ubuntu.
Стоит ли устанавливать Linux на флешку?
Несмотря на все преимущества использования операционной системы из флешки, многие говорят, что этого делать не нужно. И не зря, потому что такое интенсивное использование флешки может ее просто уничтожить.
Энергонезависимая флеш-память имеет один существенный недостаток — это ограниченное количество перезаписей одной ячейки с данными. Ограничений на количество чтений данных нет, да и ограничение на запись очень значительные — десятки миллионов раз. Для использования флешек по назначению это не критично, поскольку там частота записи не очень большая и флешки хватает надолго.
Но когда вы устанавливаете систему на флешку, ядро, файловая система, программы постоянно сохраняют свои временные файлы, постоянно работают с данными и что-то записывают на диск, еще ситуацию усложняет журналирование файловой системы, поскольку оно вносит данные о любом изменении файлов в журнал что еще больше увеличивает количество перезаписей блоков флешки.
Вы можете сказать, что существуют SSD, полученные по той же технологии, которые используются на компьютерах. Но все не совсем так, SSD рассчитаны на такую нагрузку, потому что имеют лимит перезаписей в несколько миллиардов, а также возможность горячей замены уже вышедших из строя блоков на резервные.
Поэтому когда вы соглашаетесь на установку операционной системы на флешку, вы должны понимать, что флешка проработает намного меньше чем могла бы. Но не все так плохо, можно выполнить некоторые оптимизации, которые заставят систему писать меньше информации на диск. Если вы согласны с риском, то дальше мы рассмотрим как установить Linux на флешку.
Установка Linux на флешку
Операционная система Linux позволяет пользователю сделать все что ему нужно, и если вы хотите Linux на флешке, то и это тоже можно. Нам даже не придется прибегать к каким-либо специальным инструментам.
Рассматривать весь процесс будем на примере Ubuntu и все будет сделано с помощью официального установщика. Нас не будет интересовать обычная запись образа на диск или работа из оперативной памяти. В конце мы получим именно полноценную операционную систему на флешке.
Сначала все делаете как обычно, выберите язык, настройки программного обеспечения и обновлений. Отличия начинаются на этапе разметки дисков. Тут вам нужно выбрать ручной вариант, потому что автоматическая разметка не позволяет сделать то, что нам нужно.
Здесь будет одно замечание, нужно, чтобы система не была загружена с той флешки, на которую вы собираетесь ее устанавливать, в противном случае установить ubuntu на флешку вы не сможете. То есть кроме установщика, к системе должна быть подключена еще одна чистая флешка. Если все было сделано правильно, то кроме основного диска /dev/sda, в окне разметки появится флешка /dev/sdb:
Для флешки будет указан ее размер, метка диска, а, также скорее всего на ней будет только один раздел. Этот раздел нужно удалить чтобы получить свободное место.
Дальше, из этого свободного места нужно создать два раздела. Первый — для данных и домашней папки, второй для системных файлов.
Первый раздел нужно создавать с файловой системой FAT32 и именно первым, чтобы с ним могла работать Windows. Например, если у вас флешка размером 16 Гб, то 5-4 Гб можно отдать под данные. Точка монтирования для этого раздела — /home:
Второй раздел применяется для системных файлов, здесь нам нужно не менее восьми гагабайт. Файловую систему лучше взять Btrfs, поскольку нам не нужна журналируемая ext4, а у btrfs есть сжатие и оптимизация для ssd. В качестве точки монтирования укажите /:
Последнее действие на этом шаге мастера — укажите устройство для загрузчика, это должна быть та же флешка, на которую вы устанавливаете систему.
Дальше установка linux на usb пройдет как обычно и больше ничего делать не придется, но после завершения останется оптимизировать систему.
Оптимизация Ubuntu для работы на флешке
Установка Ubuntu на флешку завершена, но теперь нам осталось заставить работать ее так, чтобы по минимуму записывать данные на диск. Все это нужно делать в уже установленной системе.
Большинство настроек будут проводится в файле /etc/fstab, сначала включим сжатие всех файлов и оптимизацию для ssd в btrfs, которая использована в качестве корня. Для корня у нас использовался раздел /dev/sdb2, поскольку /dev/sdb1 мы использовали для /home:
/dev/sdb1 / btrfs errors=remount-ro,noatime,nodiratime,compress=lzo,ssd,commit=60 0 1
Возможно, у вас диски в fstab будут именоваться по UUID, тогда вам придется найти запись, в которой указана точка монтирования / и файловая система btfs, а потому уже ее изменять. Рассмотрим опции:
- errors=remount-ro — перемонтировать только для чтения во время ошибок;
- noatime — не обновлять время доступа к файлам;
- nodiratime — не обновлять время доступа к папкам;
- compress=lzo — использовать сжатие lzo, это самый быстрый алгоритм zlib дает больший степень сжатия но работает дольше;
- commit=60 — по умолчанию файловая система записывает всю информацию об изменениях файлов каждые 30 секунд на диск, но с помощью этого параметра можно указать свое значение, но не более 300;
- ssd — набор оптимизаций для твердотельных накопителей.
Некоторые папки, в которые чаще всего записываются временные файлы системы можно переместить в оперативную память, для этого в конец файла /etc/fstab добавьте строки:
tmpfs /tmp tmpfs rw,size=100m 0 0
tmpfs /run tmpfs rw 0 0
tmpfs /var/lock tmpfs rw 0 0
tmpfs /var/log tmpfs rw,size=10m 0 0
Ядро не пишет сразу данные на диск, а кэширует их в памяти, а записывает когда диск не будет загружен или их больше нельзя будет хранить в памяти. Для настройки параметров сброса данных на диск используются файлы /proc/sys/vm/. Приведенные ниже настройки уменьшают количество записей, за счет увеличения потребления оперативной памяти.
Максимальное время между записями данных на диск:
sudo sysctl -w vm.laptop_mode=120
sudo sysctl -w vm.dirty_writeback_centisecs=12000
sudo sysctl -w vm.dirty_expire_centisecs=12000
Максимальное количество памяти для кэша в процентах:
sudo sysctl -w vm.dirty_ratio=10
Записывать данные на диск когда свободно только % памяти:
sudo sysctl -w vm.dirty_background_ratio=1
После этих настроек установка ubuntu на флешку завершена, система более-менее готова для использования на флешке и не будет ей так сильно вредить. Но все равно не забывайте время от времени делать резервные копии важных данных, потому что все может сломаться в самый неподходящий момент.
Выводы
В этой статье мы рассмотрели как выполняется установка Linux на флешку и как настроить систему, чтобы она как можно меньше вредила USB накопителю. Это может показаться немного сложным, но на самом деле все не так сложно, как кажется на первый взгляд. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Create installation media for Ubuntu
These steps will walk you through creating a bootable Ubuntu image SD Card or USB flash drive.
This will erase any existing content on the removable drive!
View instructions for: Ubuntu, Windows, or macOS.
On Ubuntu
- Download the Ubuntu image for your device in your `Downloads` folder
- Insert your SD card or USB flash drive
- Identify its address by opening the «Disks» application and look for the «Device» line. If the line is in the /dev/mmcblk0p1 format, then your drive address is: /dev/mmcblk0 . If it is in the /dev/sdb1 format, then the address is /dev/sdb
- Unmount it by right-clicking its icon in the launcher bar, the eject icon in a file manager or the square icon in the «Disks» application
- Open a terminal ( Ctrl+Alt+T ) to copy the image to your removable drive
- If the Ubuntu image file you have downloaded ends with an `.xz` file extension, run:
xzcat ~/Downloads/ | sudo dd of= bs=32M
sudo dd if=~/Downloads/ of= bs=32M
On Windows
- Download the Ubuntu image for your device in your `Downloads` folder
- If the Ubuntu image file you have downloaded ends with an .xz file extension, you will need to extract it first. To do so, you might have to install an archive extractor software, like 7-zip
- Insert your SD card or USB flash drive
- Download and install Win32DiskImager, then launch it
- Find out where your removable drive is mounted by opening a File Explorer window to check which mount point the drive is listed under. Here is an example of an SD card listed under E:
- an Image File: navigate to your Downloads folder and select the image you have just extracted
- a Device: the location of your SD card. Select the drive on which your SD card is mounted
On macOS
- Download the Ubuntu image for your device in your Downloads folder
- Insert your SD card or USB flash drive
- Open a terminal window (Go to Application » Utilities, you will find the Terminal app there), then run this command:
/dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.3 GB disk0 /dev/disk2 #: TYPE NAME SIZE IDENTIFIER 0: Apple_HFS Macintosh HD *428.8 GB disk1 Logical Volume on disk0s2 E2E7C215-99E4-486D-B3CC-DAB8DF9E9C67 Unlocked Encrypted /dev/disk3 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *7.9 GB disk3 1: DOS_FAT_32 NO NAME 7.9 GB disk3s1
Unmount of all volumes on was successful
sudo sh -c 'gunzip -c ~/Downloads/ | sudo dd of= bs=32m'
3719+1 records in 3719+1 records out 3899999744 bytes transferred in 642.512167 secs (6069924 bytes/sec)
Learn more
You can start your Ubuntu Core journey by either reading or asking.