Установка ubuntu висит на определение файловых систем

Обновлено: 05.07.2024

Войти

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

Установка и использование Ubuntu на USB флешке

Довольно часто возникает желание или необходимость поставить Ubuntu на USB флешку и получить возможность пользоваться своей любимой ОС на любом компьютере (лишь бы была возможность загрузиться с USB).
Делается это просто - грузимся с LiveCD Ubuntu (или с LiveUSB 1) ) и ставим систему на флешку. При этом нам не важно какая ос установлена на компьютере. Все что нужно это сам компьютер, LiveCD/USB и флешка (на которую будем ставить Ubuntu).

Более подробно процесс установки Ubuntu на флеш-накопитель описан тут. Как вариант - можно в качестве компьютера использовать эмулятор: VirtualBox или VmWare, только в них бывает сложно подключить USB для установки Ubuntu, тогда как LiveCD не надо записывать - можно просто подключить образ в виртуальный привод CD-rom.

И часто подход к этому вопросу, что называется, «в-лоб» разочаровывает низкой производительностью и тем, что флешка быстро умирает .

Многие смогут возразить, что имея такую флешку с установленной ОС они ей пользуются много месяцев или даже лет. Если уточнить, то выясняется, что пользуются то ей долго, а вот грузятся с нее редко и работают не подолгу. Если же работать с такой флешки ежедневно, по много часов, то «смерть» флешки не заставит себя долго ждать: 2-3 месяца, может больше, может меньше, зависит от флешки (из личного опыта создателя начальной версии этой статьи Sly_tom_cat).

Кроме того и сам процесс установки порой приводит к неприятным последствиям.

Но не надо отчаиваться и опускать руки…. Даже из не очень хорошего сырья можно сделать…, если не конфетку, то, по крайней мере, что-то съедобное
Разберемся в причинах печального исхода и возможных методов улучшения ситуации.

Основные ошибки при установке Ubuntu на USB флешку и как с ними бороться

На флешке создаются разделы с файловой системой, которая при работе будет осуществлять большое количество записей на флешку (чем сократит ее время жизни). Это касается и разделов EXT4 и swap-раздела. Загрузчик установится так, что без флешки ваш компьютер не сможет загрузится.

Разберем подробнее эти две проблемы

Как продлить жизнь флешке

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

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

Кажется это много, но разберемся как эти циклы записи «съедаются» при работе ОС.

Запись на флеш-носитель происходит по-блочно (как правило - десятки килобайт), и запись последовательно двух байт в файл с интервалом между записями в несколько минут вызовет две записи одного и того же блока памяти (т.е. обновятся два раза несколько тысяч ячеек). При работе файловой системы (ФС) некоторые служебные структуры ФС обновляются постоянно: журнал (для журналируемых ФС) - чем чаще он пишется, тем выше вероятность сохранения целостности ФС при сбоях системы или питания. Частота записи в журнал, как правило изменяема, но значения по умолчанию не совсем подходят для работы с флеш-памятью, а увеличение периодов между записью - приводит к увеличению вероятности потери целостности ФС при сбое. i-node (специальная структура в которой сохраняется заголовок файла или каталога) - при каждом обращении (даже чтение) к файлу или каталогу в i-node прописывается дата/время последнего обращения. Казалось бы - всего несколько байт, но вспомним про блочную запись, и том, что запись их идет при каждом обращении к файлу (прочитали байт - изменились, еще байт - опять изменилось). SWAP-раздел - если он используется в работе системы, то запись в него тоже очень интенсивная.

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

Как бороться со всем этим?
Для начала поймем и примем как данность:

Флешки не вечны и умирают не предупреждая !

Осознав это поймем, что и

Система на флешке - не может быть долговечной и надежной.

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

Есть и другие ФС, и настройки, которые могут продлить жизнь флешке. Эти решения могут дать большие преимущества. Если есть желание - то поищите другие варианты. Особо обращает на себя внимание опция ssd файловой системы btrfs…

Избавиться от записи даты/времени последнего доступа к файлам и директориям в i-node помогают опции монтирования файловых систем noatime 4) и nodiratime. Их, после установки системы, нужно будет прописать в файле /etc/fstab для всех разделов системы, которые расположены на флешке.

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

Временные файлы и swap.
Современные компьютеры редко страдают недостатком оперативной памяти (перелом в этом отношении случился в компьютерной индустрии после значительного удешевления схем памяти). И уже при 1ГБ оперативной памяти Linux довольно редко обращается к swap, если не запускать ресурсоёмкие задачи (например кодирование высококачественного видео или редактирование огромных изображений). Если памяти 2ГБ или больше, то заставить Linux использовать swap вообще довольно сложно.
Полное отсутствие swap грозит неадекватным поведением системы при исчерпании ресурсов оперативной памяти, но вспомним, что мы с вами осознали - система на USB флешке не может быть надежной по определению. Вывод напрашивается сам собой - swap для системы на флешке - не нужен. А на компьютерах с малым объемом памяти нужно быть осторожным и стараться не запускать много приложений одновременно. Можно так же настроить ramzswap (он же - compcache): своп в оперативную память с упаковкой свопируемых станиц.
Ресурсы оперативной памяти помогут и со временными файлами - достаточно смонтировать временный каталог системы /tmp в диск организованный в памяти. Для этого нам пригодится замечательная файловая система tmpfs (даже название говорит, что она хорошо подходит для /tmp).

В /etc/fstab нужно прописать строчку:

В примере максимальный размер /tmp задан как 32 Мегабайта. Размер можно задать другой, но если ограничения не задать, то «сдуревшее» приложение, которое будет писать бесконечно во временный файл, может подвесить вашу систему.
Размер /tmp важно выбрать правильно т.к. в нем будут хранится самые разные вещи. Например видео с Youtube вы не сможете посмотреть до конца если файл с видео не влезет полностью в ваш /tmp.

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

В примере на флешке создан корень и отдельный /home 5) . Если есть еще какие-то разделы с флешки - то им тоже прописываем noatime,nodiratime.

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

Как правильно ставить GRUB

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

Подведем итоги

Если мы хотим пользоваться системой на флешке долго, и не получить разочарования от потери данных, то нужно делать так:

тип ФС для разделов системы выбираем EXT4 с отключенным журналом (или на худой конец - EXT2). swap не создаем (а если на компьютере есть раздел swap - то говорим инсталятору - не использовать его). GRUB устанавливаем обязательно на флешку, где и создаем разделы для установки системы. прописываем в /etc/fstab опции noatime,nodiratime для всех разделов размещенных на флешке. прописываем в /etc/fstab монтирование /tmp, /run, /var/lock (и, возможно, /var/log) в tmpfs (не забываем про ограничение размера). При использовании системы нужно регулярно делать резервную копию важных данных на другой носитель 6) (не забываем про невысокую надежность ОС на флешке и возможную внезапную кончину флеш-памяти). А при использовании на компьютере с небольшим объемом оперативной памяти (1Гб и менее) стараемся не запускать по много ресурсоёмких задач одновременно или изучаем и настраиваем ramzswap. Кроме указанного, можно применить и другие приемы оптимизации производительности системы (эти приемы выходят за рамки данной статьи, но их легко найти в Internet-е).

А главное - никогда не забываем про вывод, к которому мы пришли в начале этой статьи. Повторю:

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

"Подводные камни"

Есть одна досадная ошибка инсталлятора (можно сказать особенность 7) ), которая не позволяет установить Ubuntu на тот же физический диск с которого загрузился Live образ 8) . Т.е. если вы захотите загрузившись с флешки на нее же и поставить Ubunut (в другой раздел) - то вам это не удастся. Обойти эту «особенность» можно удалив «руками» запись о примонтированном разделе с флешки из /etc/mtab.

Альтернативы

Внешний жесткий диск не страдает малым числом циклов записи, однако, операционная система, работая с диском по довольно медленному интерфейсу (обычно USB2. USB3 и e-SATA интерфейсы - значительно быстрее, но на момент написания статьи - еще не сильно распространены), также требует оптимизации. Тут пригодятся и noatime,nodiratime, тоже стоит подумать - а нужен ли swap, да и /tmp полезно также разместить в памяти. А вот логи размещать в памяти - не стоит. Ну, а кроме того, внешний диск - это совсем другой размер и вес , да и падения для этих устройств - опасны. Внешний SSD диск - довольно дорогое решение. Тоже не маленький, хотя и легче внешнего жесткого диска и падений - почти не боится (как и флешка). И там тоже есть ограничение по числу циклов записи 9) , но контроллеры твердотельных дисков используют специальные алгоритмы переразмещения записываемых блоков с учетом знаний о том, сколько записей было сделано в каждый блок памяти. Эти алгоритмы значительно продлевают время жизни такого носителя информации. Упрощенные алгоритмы переразмещения блоков используются и в некоторых (как правило - не самых дешёвых) флешках. Для их работы требуется как избыточное количество ячеек памяти, так и более быстрый и «умный» контроллер. Собственно «особый» контроллер и доп. (не доступная пользователю) память и повышают стоимость флешки… хотя, конечно основное повышение цены делают маркетологи, как обычно Можно пойти и другим путем - сменить дистрибутив. Есть дистрибутивы специально «заточенные» на работу с флешки (не берусь тут перечислять их все - их легко найти). Ярким представителем таких дистрибутивов является Puppy Linux (русифицированные сборки - PuppyRus Linux). Дистрибутив этот собран минималистично 10) и с использованием самых скромных (по размерам) программ. Это позволяет в процессе загрузки разместить всю файловую систему Linux в оперативной памяти 11) . А в процессе выключения системы все изменения в ФС (произведенные за время работы) записываются однократно обратно на флешку 12) . Изменения можно скинуть и в процессе работы, если есть опасения например в возможном внезапном отключении питания, ну или просто - что бы быть спокойным, что не потеряется ничего. А самое привлекательное для любителей Ubuntu в том, что есть сборки Puppy основанные на Ubuntu. Сайт проекта PuppyRus содержит много полезной информации и инструкций.

А в чем отличие от LiveUSB

Собственно 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,nodiratime в опции монтирования в /etc/fstab) т.к. монтирование корня происходит на этапе инициализации ядра системы и в /etc/fstab Live системы просто нет монтирования корня.
Производительность по записи (собственно это больное место мы особо и не рассматривали при разговоре об Ubuntu установленной на флешку) здесь будет еще похуже, запись идет в ФС EXT2, а она лежит в фале на ФС FAT.
Дополнительно, флешка всегда хранит один и тот же набор системных файлов в SquashFS и любые обновления системы будут занимать место в casper.rw, но не будут освобождать место в SquashFS и это может стать проблемой при небольшом объеме флешки.

В «сухом остатке»- у LiveUSB нет особых преимуществ 13) перед правильно установленной на флешку системой, а недостатки - присутствуют.
Также существуют ОС, специально созданные для установки на флешку. Для примера дана ссылка на проект PuppyRus Linux, где можно найти множество таких ОС. Существуют и другие аналогичные проекты.


Однако для некоторых пользователей это не проходит гладко. Программа установки не переходит к экрану обновлений. Это может произойти по ряду причин, от поврежденного раздела до раздела Windows и т. Д. Чтобы лучше понять проблему, давайте рассмотрим потенциальные причины проблемы, а затем мы продолжим упоминание различных обходных путей для решения проблемы.

Теперь, когда мы закончили с возможными причинами проблемы, давайте рассмотрим различные методы, которые вы применяете для решения проблемы.

Метод 1: отключение раздела Windows

Оказывается, если вы пытаетесь установить дистрибутив Ubuntu вместе с установкой Windows, установщик может зависнуть в процессе установки. Это была известная проблема и с предыдущими установщиками. Хотя не все сталкиваются с этой проблемой, время от времени она, безусловно, улавливает несколько жертв. Таким образом, если это относится к вам, вы должны отключить раздел Windows.

Также важно отметить, что некоторые пользователи сообщали, что им приходилось делать это два или три раза, чтобы заставить его работать. Если вы не знаете, как отключить раздел, не волнуйтесь, мы покажем вам, как это сделать. Для этого следуйте приведенным ниже инструкциям:


  1. Прежде всего, на вашем живом диске Ubuntu нажмите клавишу Windows, чтобы открыть меню поиска.
  2. В строке поиска введите gparted и нажмите Enter.
  3. После запуска GParted найдите раздел, в котором установлена ​​Windows.
  4. Щелкните раздел правой кнопкой мыши и выберите параметр «Отключить».Размонтирование раздела
  5. Это отключит раздел Windows.

Метод 2: проверьте наличие поврежденных разделов

Если у вас нет установки Windows на том же диске или если описанный выше метод не решает вашу проблему, возможно, на вашем устройстве хранения поврежден раздел. В таком случае установщик, естественно, не продолжит работу и застрянет в той или иной точке.

Поэтому важно проверить наличие поврежденных разделов на жестком диске или SSD. Это довольно просто. Следуйте инструкциям ниже, чтобы проверить наличие поврежденного раздела:


  1. Чтобы найти поврежденный раздел, вам сначала нужно открыть GParted. Таким образом, нажмите клавишу Windows, а затем найдите gparted и откройте его.
  2. После запуска GParted убедитесь, что выбран диск, на который вы устанавливаете дистрибутив.
  3. Поврежденный раздел часто имеет красный восклицательный знак, а файловая система может быть неизвестна.Поврежденный раздел
  4. Проверьте, есть ли такой раздел.
  5. Если раздел поврежден, щелкните его правой кнопкой мыши и выберите в раскрывающемся меню команду «Удалить».

Метод 3: запустите Ubuntu в безопасном графическом режиме

В некоторых случаях система не может правильно инициализировать видеокарту во время загрузки. Чтобы противостоять этому, в Ubuntu есть режим безопасной графики. Проблема с вашим драйвером дисплея может привести к зависанию Ubiquity во время установки. Чтобы решить эту проблему, вам необходимо запустить Ubuntu в режиме безопасной графики, который редактирует параметры загрузки. Об этом сообщил пользователь, столкнувшийся с аналогичной проблемой.

Поэтому выстрел стоит. Чтобы запустить Ubuntu в режиме безопасной графики, перезагрузите систему, а затем в меню GRUB выберите параметр «Установить Ubuntu (безопасная графика)». Наконец, начните установку как обычно.


Параметры загрузки Ubuntu

Метод 4: изменение параметров загрузки


Прежде чем мы начнём разбирать строение файловой системы Ubuntu, мне хотелось бы отметить, что структура любой системы основанной на ядре Linux, это файлы, файлы и ещё раз файлы. Все файлы системы Linux находятся в свободном доступе для просмотра любому пользователю и редактированию - суперпользователю/администратору (он же - root), т.е. пользователю который при установке системы ввёл свой логин и пароль.
Очень часто новые пользователи дистрибутивов Linux задают вопрос: "Зачем нужно постоянно вводить пароль?". Делается это в целях безопасности, так как я уже упоминал выше, что вся файловая система находится в открытом доступе и вводить пароль нужно лишь в том случае, когда производятся действия по редактированию/изменению в системе, чтобы другое лицо/пользователь не смог по незнанию или злому умыслу нанести ущерб системе. Думаю мы с этим вопросом разобрались.

В операционных системах Linux и Ubuntu в частности, вся файловая система имеет организованную, конкретную структуру. Начинающие пользователи, только мигрировавшие с Windows на Linux, как правило, испытывают определенные трудности, в связи с отсутствием четкого представления о принадлежности каждого каталога/папки, сожержащего те или иные файлы.

В Ubuntu все папки с файлами находятся в файловом менеджере Nautilus (в разных дистрибутивах применяются другие файловые менеджеры, но строение файловой системы остаётся неизменным). По умолчанию Nautilus открывается в Домашней папке пользователя (/home):


В Домашней папке любой пользователь может производить необходимые действия: добавление, изменение, копирование, перемещение и другие действия над файлами без ввода пароля.

Теперь переходим к строению и содержанию файловой системы Ubuntu:


Если перейти на компактный вид каталогов/папок (указано стрелкой в правом верхнем углу окна), то скорее всего вы обратите внимание, что расположение папок находится в простом алфавитном порядке (латин.) по их названию, а не в каком-то иерархическом (по рангу):


Далее рассмотрим конкретно, что хранится в том или ином каталоге.

Примечание . Косой чертой (/) или слешем в Linux обозначается каталог/папка. Это надо запомнить.
Иногда многие админы на своих ресурсах каталог ещё называют директорией. Директория или directory, что в переводе с английского значит - каталог/папка.

Исправление ошибки в работе с файлами

Причин возникновения проблем с доступом к файлам в Ubuntu может быть несколько.

Неисправность носителя

В первую очередь стоит проверить, точно ли исправна эта файловая система. В случае с флеш-картой сделать это легко. Попробуйте открыть её с компьютера на Windows. Другая система может быстро найти неполадки на накопителе. То же самое касается карт памяти, китайских плееров и других дешёвых носителей информации. Часто дело может быть в них.

В случае, когда проблемным является жёсткий диск, выполнить проверку будет гораздо труднее. Если на вашем компьютере стоит две системы, проверьте, исправно ли работает ваш HDD на Windows. Эти способы позволят определить очаг неисправности.

Форматирование

Во многих случаях вернуть работоспособность помогает простое форматирование файловой системы. Особенно легко это сделать на флешке. Правда, не всегда мы готовы расстаться с той информацией, которая на ней уже есть. Перекиньте все данные на компьютер под управлением Виндовс и отформатируйте проблемный накопитель.

С диском навряд ли у кого-то поднимется рука совершить такое. Форматирование может уничтожить много важной информации. Тем более, если повреждена файловая система Ubuntu, проблему надо искать в другом месте.

Форматирование диска

Проверка на наличие ошибок

Проверить диск на наличие ошибок можно не только на Windows. Убунту также обладает достаточным арсеналом для этого. Сделать это можно и с помощью команд, и пользуясь специальным приложением. Сначала разберём способ, использующий стандартные средства.

Просматриваем список накопителей:

Проверяем конкретный накопитель:

В примере взят sdf, но у вас название диска может отличаться.

Если том был примонтирован, то перед тем, как проверять, это действие нужно отменить:

Теперь проверяем том на бэдблоки — проблемные области:

Прогресс выполнения будет отображаться в процентах.

Теперь отмечаем бэдблоки, чтобы система перестала их использовать:

GParted

Загрузка приложения GParted

  1. Для начала эту программу необходимо установить. Сделать это легко при помощи команды:
    sudo apt-get install gparted
  2. Открываем GParted. Перед нами будут выведены все носители. Среди них должен быть и проблемный недоступный — если утилита увидит ошибки, то она пометит его восклицательным знаком.
  3. Теперь открываем наш диск и нажимаем на кнопку «Раздел», расположенную сверху.
  4. В выпавшем меню выбираем «Проверка на ошибки». Программа отсканирует диск и, возможно, найдёт неполадки, после чего файловая система станет доступной не только для чтения.

Права доступа

Наконец, последняя причина, по которой мы теряем доступ к управлению данными на носителях, заключается в нарушенных правах. С ней могут сталкиваться и опытные юзеры, использующие root-режим. Когда мы используем различные команды, не до конца понимая их суть, или запускаем программы с расширенными полномочиями, система может по ошибке перекрыть доступ.

Проверка прав доступа

В качестве универсального метода здесь подойдёт команда:

Вместо [user] необходимо вписать имя пользователя. Команда chown отвечает за смену прав доступа к папке. Атрибут –R означает, что этот раздел пользователь может только читать. Sudo отменяет эти изменения. В примере проблема заключалась в домашнем разделе, если у вас проблемы с флешкой, то следует вписать её директорию.

Файловая система Убунту работает немного по другим принципам, нежели на Windows. Поэтому любые диски под её управлением ведут себя по-другому. Из-за этого возникают и новые ошибки, с которыми на Винде нельзя столкнуться.

Читайте также: