дядя Фёдор

Азбука работы с дисками

В теме 147 сообщений

Как переразбить диск на разделы, используя только прошивку PGI 1.4

  • Понятие "диск" означает любой накопитель: внутренний или внешний, жесткий диск или флешка - ресиверу это безразлично
  • Все команды описанные ниже делаются в Telnet. Не через окно веб интерфейса под названием Telnet, а через настоящий Telnet (например, при помощи PuTTY)
  • Многое из нижесказанного возможно только в прошивке PGI 1.4 и выше, так что всё, описанное здесь применительно только к этой прошивке (на других прошивках этот метод может не работать)
  • При переразбивке диска на разделы вы, скорее всего, потеряете все данные на диске, не говорите потом, что вас не предупреждали!
Перед любыми операциями с подключенным диском нужно убедиться в том, что он не используется софтом. Для того чтобы полностью, стопроцентно, освободить диск от доступа к нему, нужно сделать несколько операций:

  • спрятать диск от основного софта: для этого нужно ВРЕМЕННО прописать MEDIA_DEVICE="xxx" в pgi.conf и перезагрузить ресивер (софт будет искать устройство xxx и ничего не найдет).
  • запретить автомонтирование разделов: после перезагрузки (которая шагом выше) зайти по Telnet и дать команду: touch /tmp/.format_hdd
  • отмонтировать уже автосмонтированные разделы: дать команду: mount и посмотреть, есть ли строчки начинающиеся с /dev/sda или /dev/sdb (обычно они в конце списка). Если есть, то дать одну или несколько команд: umount /dev/sda2 (где /dev/sda2 заменить на ваши смонтированные разделы). Будьте внимательны: команда называется umount, а не unmount, кроме того лучше всего давать эту команду только после команды: cd / (переход в самую верхнюю директорию, чтобы по ошибке не находиться в директории, которую вы пытаетесь отмонтировать).
  • отмонтировать swap, если раздел под него уже был на диске. посмотреть, какие разделы используются под swap можно командой cat /proc/swaps. Если там будет один (или более чем один) из разделов интересуемого диска, то для каждого из интересующих разделов нужно дать команду по аналогии с такой: swapoff /dev/sda1

Теперь, когда у вас не смонтировано ни одного раздела и отключено авто-монтирование, вы наконец-то можете переразбить диск как вам угодно. Перед тем, как трогать диск, нужно убедиться что вы будете менять то, что нужно. Если у вас подключен только один диск (например, только внутренний или только одна USB флешка), то устройство будет только одно: /dev/sda. Если же устройств несколько, то нужно очень внимательно смотреть, как называется именно нужное вам устройство, чтобы не навредить там, где не надо. Для перестраховки можно дать команду: cat /sys/block/sda/device/model (где sda поменять на нужное), которая обычно показывает модель диска (и, часто, его производителя).

Допустим, что нас интересует диск sda. Для разбивки на разделы используется команда: fdisk /dev/sda

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

Я не буду рассказывать здесь, что такое Primary и Extended Partition, что такое логические диски, и чем отличаются блоки от мегабайт. Об этом можно начитаться в Интернете более чем достаточно, так как ничего тут особого применительно к ресиверу или к Linux нет - это стандартные вещи в мире PC. Тут стоит упомянуть только самые необходимые вещи, которые специфичны для работы ресивера и программы fdisk.

Краткая сводка действий, возможных при помощи fdisk (самые важные выделены, все остальные можно забыть):

m - помошь по другим командам

d - удалить раздел (нужно затем указать номер раздела)

n - создать новый раздел (на диске должно быть неиспользованное место, прежде чем создавать разделы, то есть обычно сначала разделы удаляют буквой d)

p - показать текущую таблицу разделов (самая часто используемая команда - без нее как без рук)

q - отменить любые изменения и выйти из программы

w - записать новую таблицу разделов на диск (собственно, за чем пришли)

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

с - вкл/выкл флаг совместимости с DOS (не имеет значения)

l - перечислить все известные типы разделов (иногда полезно)

o - создать пустую таблицу разделов DOS (забудем об этом)

s - создать пустую метку Sun (забудем об этом)

t - изменить тип раздела (нужно только в случае разбивки на разделы, которые будут не EXT2/EXT3, например для FAT32 или NTFS. Тип раздела для Swap менять НЕОБЯЗАТЕЛЬНО, swap раздел нужно всё равно сначала отформатировать в EXT2, см. ниже)

u - изменить единицы директорий (забудем об этом)

v - проверить таблицу разделов (забудем об этом)

x - доп. функции для экспертов (мы не эксперты, так что забудем)

Процесс, по сути дела, сводится к следующему: смотрим нынешнюю таблицу разделов командой p. Удаляем разделы командой d. Создаем новые командой n. Проверяем, что наудаляли и насоздавали снова командой p. Записываем конечный результат командой w.

ВНИМАНИЕ: Если после команды w вы получите сообщение вроде "fdisk: WARNING: rereading partition table failed, kernel still uses old table: Device or resource busy", это значит, что вы плохо умеете читать или выполнять инструкции. Вам придется вернуться в самое начало и сделать 4 шага для того, чтобы ресивер не имел доступа к вашему диску. Эта ошибка значит, что один из разделов диска по-прежнему используется системой.

Что делать дальше с переразбитыми разделами? Их нужно отформатировать! (До этого мы ничего не форматировали, мы просто поделили диск на логические кусочки). Здесь нужно иметь в виду следующее: на ресивере вы сможете отформатировать только разделы под EXT2/EXT3 (формат родной для Linux). Если вам нужно отформатировать некоторые разделы еще и в FAT32 или NTFS, то их придется форматировать на обычном PC.

Особо нужно отметить проблемы, возникающие с USB флешками, если вы хотите разбить их так, чтобы там было более одного раздела и смешанные файловые системы вроде FAT32 и EXT3. Речь идет именно о флешках, а не об USB HDD. Дело в том, что Windows распознает большинство флешек как removable device (сменное устройство) и не может работать более чем с одним разделом на таких устройствах. Зачем это искусственное идиотское ограничение было введено, мы, скорее всего никогда не узнаем, но даже Windows 7 по-прежнему имеет такое ограничение, что делает невозможным нормально пользоваться флешкой с более чем одним разделом.

Ниже сведения о том, как правильно отформатировать разделы для разных нужд.

ВНИМАНИЕ ЕЩЁ РАЗ: Перед форматированием раздела убедитесь, что он не был автосмонтирован. Это делается, как описано выше в шагах 3 и 4.

Подготовка раздела для swap

Для swap обычно используется первый раздел диска (наследие корейских прошивок), но если вы пользуетесь PGI 1.4 или выше, то каким будет раздел swap - совершенно безразлично, потому что он будет найден и смонтирован автоматически. Для прошивок PGI 1.2 и ниже вы тоже можете использовать для swap любой раздел диска, но для этого нужно вписать в pgi.conf соответсвующий параметр для swap (см. подробности в HDD_ru.txt от прошивки PGI). В примере ниже используется раздел sda1 для swap:

mkfs.ext2 /dev/sda1
mkswap /dev/sda1
swapon /dev/sda1

После этих команд swap станет доступен и будет включен. Чтобы проверить работает ли swap, можно дать команду cat /proc/swaps или команду free (см. последнюю строку)

ВНИМАНИЕ: если у вас диск размером больше пары сотен гигабайт, то swap нужно включить ОБЯЗАТЕЛЬНО ПЕРВЫМ ДЕЛОМ, перед тем как форматировать остальные большие разделы, иначе ресиверу просто не хватит оперативной памяти для форматирования.

Подготовка раздела для media

Для media (то есть для функций типа таймшифт и записи каналов) обычно используется второй раздел диска. Это, строго говоря, не обязательно, и если вы хотите использовать не второй раздел, то нужно будет поменять соответствующий параметр в pgi.conf (см. подробности в HDD_ru.txt от прошивки PGI). В примере ниже используется раздел sda2 для media:

mke2fs -T ext3pgi -L ext3 /dev/sda2
tune2fs -c 120 -i 6m /dev/sda2

В команде выше можно заменить ext3 на ext2. В чем разница между этими двумя файловыми системами, смотрите HDD_ru.txt от прошивки PGI. Вторая команда устанавливает параметр принудительной проверки диска на ошибки после 120 монтирований или после 6 месяцев (что произойдет раньше). Эти параметры можно поменять самому, как вам вздумается. Значения взяты из прошивок PGI 1.x.

Обычные разделы Linux

Остальные разделы Linux: можно отформатировать просто файловой системой EXT2 или EXT3.

mkfs.ext2 /dev/sda3
# или 
mkfs.ext3 /dev/sda4

И, НАКОНЕЦ:

После форматирования разделов нужно не забыть УБРАТЬ из pgi.conf команду MEDIA_DEVICE="xxx", которую мы изменили в начале, и перезагрузить ресивер.

Изменено пользователем дядя Фёдор

Поделиться сообщением


Ссылка на сообщение

Типичные примеры разбивки дисков.

Ситуация №1

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

/dev/sda1 - swap размером в 128 мегабайт

/dev/sda2 - раздел EXT3 размером, адекватным для записи каналов (как показано в примере "Остальные разделы Linux"), а также для хранения скинов и EPG.

/dev/sda3 - создаем как FAT32, отводим всё оставшееся место, форматируем потом на компьютере и можно забрасывать файлы (правда, сначала читаем здесь по поводу флешек).

Естественно, что с такой флешкой нужно не забывать о том, что ресивер должен стартовать уже со вставленной флешкой, так как разделы sda1 и sda2 должны быть наготове еще до старта основного софта.

Ситуация №2

Например, у вас встроенный винчестер на X гигабайт. Мы хотим иметь swap, media и несколько разделов для загрузки разных прошивок прямо с HDD через мультибут (кстати, время старта ресивера с SATA дисков намного быстрее, чем все остальные способы). Скажем, нам хочется иметь 4 раздела под разные прошивки. Разбиваем диск тогда на 7 разделов:

/dev/sda1 - swap (128 мегабайт или около того, больше точо не нужно - редко swap переваливает за 64 мегабайта, поэтому 128 точно достаточно)

/dev/sda2 - media (большинство пространства диска минус пространство для остальных разделов. Скажем, мы хотим еще 4 раздела для разных софтов, тогда удержим 256 мегабайт (4 * 64 - четыре прошивки по 64 мегабайта), а остальное отдадим под /media)

/dev/sda3 - просто пропускаем, так как нам нужно будет больше чем 4 раздела всего вместе, а это можно сделать только за счет 4-го (см. ниже)

/dev/sda4 - extended partition (расширенный раздел, чтобы иметь несколько логических дисков)

/dev/sda5 - ext3 - 64 мегабайта для первой прошивки

/dev/sda6 - ext3 - 64 мегабайта для второй прошивки

/dev/sda7 - ext3 - 64 мегабайта для третьей прошивки

/dev/sda8 - ext3 - 64 мегабайта для четвертой прошивки

Изменено пользователем дядя Фёдор

Поделиться сообщением


Ссылка на сообщение

Типичные примеры разбивки дисков.

Большое спасибо за подробное описание. Планируется ли возможность работать с разделами указав их UUID?

Поделиться сообщением


Ссылка на сообщение

Большое спасибо за подробное описание. Планируется ли возможность работать с разделами указав их UUID?

Нет, не планируется. Какое преимущество это дает в случае с ресивером?

Поделиться сообщением


Ссылка на сообщение

Какое преимущество это дает в случае с ресивером?

Ну вот у меня 91HD, жёсткий диск--внешний. Если при запуске была вставлена флешка, то ЖД назначается sdb вместо sda. Не смертельно, конечно. Изменено пользователем simply123

Поделиться сообщением


Ссылка на сообщение

Спасибо за проделаную работу дФёдор для нас новичков-очень поезно

Поделиться сообщением


Ссылка на сообщение

По каким признакам войдя в меню ресивера можно определить, что ресивер правильно использует swap и для чего ресиверу он нужен?

Если всё сделано правильно, как описано выше, то при входе в медиаплеер будут ли все разделы видны с sda1 по sda7? Или раздел под swap (sda1) не будет виден? а только:

sda2

sda3

sda4

sda5

sda6

sda7

Изменено пользователем Valery-21

Поделиться сообщением


Ссылка на сообщение

А диск sda3 предполагается тюнером форматировать в фат32 (с возможностью потом на компе разбить на логические диски если надо) и зписывать туда файлы с компа ?

Я правильно понял ?

Поделиться сообщением


Ссылка на сообщение

Если всё сделано правильно, как описано выше, то при входе в медиаплеер будут ли все разделы видны с sda1 по sda7? Или раздел под swap (sda1) не будет виден? а только:

sda2

sda3

sda4

sda5

sda6

sda7

Если вы имеете в виду пример №2 выше, то будут видны разделы:

/dev/sda2 смонтированный на /media (в медиаплейере не виден, т.к. используется для таймшифта и записи каналов)

/dev/sda5 смонтированный на /mnt/usb/sda5

/dev/sda6 смонтированный на /mnt/usb/sda6

/dev/sda7 смонтированный на /mnt/usb/sda7

/dev/sda8 смонтированный на /mnt/usb/sda8

Разделы 5 - 8 будут видны в медиаплейере в разделе USB устройства.

Раздел 4 не будет виден НИГДЕ. Он в этом примере используется как "метка" расширенного раздела.

Изменено пользователем дядя Фёдор

Поделиться сообщением


Ссылка на сообщение

По каким признакам войдя в меню ресивера можно определить, что ресивер правильно использует swap и для чего ресиверу он нужен?

Через меню - ни по каким признакам.

Как определить использует ресивер swap или нет я уже написал в первом посте.

Swap нужен для того же, для чего в Windows нужен файл подкачки - для свопинга памяти, при ее нехватке.

Поделиться сообщением


Ссылка на сообщение

А диск sda3 предполагается тюнером форматировать в фат32 (с возможностью потом на компе разбить на логические диски если надо) и зписывать туда файлы с компа ?

Я правильно понял ?

Если вы имеете в виду пример №1 выше, то вы поняли правильно. Только если вам нужны логические диски (несколько штук), то лучше сразу их создать на ресивере при помощи fdisk, а потом только отформатировать их на компьютере. Лучше на компьютере уже ничего недоразбивать, а только форматировать. После этого можно записывать в такие FAT32-разделы файлы, которые будут видны в медиаплейере через меню Том -> USB.

Поделиться сообщением


Ссылка на сообщение

Подключил в качестве swap sda1, как написано в инструкции выше, и теперь вызов списка каналов и навигация по списку происходят практически мгновенно, подтормозки изчезли, а это на мой взгляд был главный недостаток у пги1.

Очередное спасибо Дяде Фёдору.

Я думаю что про swap надо и в ридми к прошивке, и везде написать (очень уж эффект ощутимый).

Поделиться сообщением


Ссылка на сообщение

Какой программой на компе редактировать файл pgi.conf для того, чтобы указать раздел для swap на sda2? В каком месте добавлять запись HDD_SWAP="sda2"? Сразу ниже DEBUG="no"?

Поделиться сообщением


Ссылка на сообщение

Какой программой на компе редактировать файл pgi.conf для того, чтобы указать раздел для swap на sda2? В каком месте добавлять запись HDD_SWAP="sda2"? Сразу ниже DEBUG="no"?

Для редактирования пги.конф. мне проще всего было DCC, так как до ipbox крутил мозги дриму500 :rolleyes: ,

Ещё можно прогой-редактором nano, тоже легко во второй раз :rolleyes:

А в каком месте какой параметр в пги.конф -- ето без разницы.

Поделиться сообщением


Ссылка на сообщение

По каким признакам войдя в меню ресивера можно определить, что ресивер правильно использует swap...

Создайте в /var/bin файл scrplg-swap.sh следующего содержания:

#!/bin/sh
# title:swap info
grep Swap /proc/meminfo
free

По кнопке www вызвываете меню скриптов и выбираете swap info.

Изменено пользователем дядя Фёдор

Поделиться сообщением


Ссылка на сообщение

По кнопке www вызвываете меню скриптов и выбираете swap info.

Спасибо! Все сделал, но нижняя строчка показывает: Swap: 0 0 0

Вероятно его нет. Подскажите, если в курсе, каким редактором на компе отредактировать файл pgi.conf чтобы прописать что swap на sda2 ?

Изменено пользователем дядя Фёдор

Поделиться сообщением


Ссылка на сообщение

Спасибо! Все сделал, но нижняя строчка показывает: Swap: 0 0 0

Вероятно его нет. Подскажите, если в курсе, каким редактором на компе отредактировать файл pgi.conf чтобы прописать что swap на sda2 ?

Любым, который сохраняет файлы в текстовом формате.

Его также можно отредактировать прямо на ресивере через Telnet.

В прошивке PGI есть ТРИ встроенных редактора: vi - для линуксоидов, nano - для простых смертных, mc-edit (часть от Midnight Commander) - для самых ленивых...

Изменено пользователем дядя Фёдор

Поделиться сообщением


Ссылка на сообщение

Создайте в \var\bin файл scrplg-swap.sh следующего содержания:

Спасибо за помощь.

Маленький комментарий по скрипту: зачем же одно и то же два раза?

Достаточно либо первой либо второй команды.

Информация о свопе идентична в обоих случаях.

Поделиться сообщением


Ссылка на сообщение

Почти идентичная.

Первая дополнительно отображает SwapCached (объем памяти, который однажды был помещен в swap, но потом перенесен обратно в RAM, но эти данные все еще присутствуют в swap, и при необходимости этот объем памяти может быть вновь освобожден без необходимости тратить ресурсы на операции ввода/вывода).

А во второй есть самый информативный параметр used, который инормирует и о том, что swap активирован, и о том, что в нем есть необходимость.

Поделиться сообщением


Ссылка на сообщение

Почти идентичная.

Первая дополнительно отображает SwapCached (объем памяти, который однажды был помещен в swap, но потом перенесен обратно в RAM, но эти данные все еще присутствуют в swap, и при необходимости этот объем памяти может быть вновь освобожден без необходимости тратить ресурсы на операции ввода/вывода).

А во второй есть самый информативный параметр used, который инормирует и о том, что swap активирован, и о том, что в нем есть необходимость.

Вынужден вас разочаровать - это абсолютно одна и та же информация. Команда free берет всю информацию именно из /proc/meminfo.

Другими словами, free - это просто стандартизированная оболочка для доступа к этой информации, так как на разных версиях ядра Linux информация в /proc может немного отличаться.

Поделиться сообщением


Ссылка на сообщение

Я не разочарован, т.к. что то в этом роде и предполагал. Было-бы нелепо, если было-бы по другому. Хотя может я и неправ - Linux для меня пока лес темный и дремучий. Однако настаиваю на том, что имеет смысл оставить обе команды. Очевидно что free берет SwapTotal, вычитает из него SwapFree

и выводиn разность на экран в колонку used. Значит free оставляем - не сидеть же с калькулятором. Но free не отображает величину SwapCached, значит и от grep Swap /proc/meminfo польза есть.

Для экономии места и исключения дублирования можно использовать следующий вариант:

#!/bin/sh# title:swap infoecho "Swap info:" ; free | grep  'Swap: \| total' ; grep SwapCached /proc/meminfo

Поделиться сообщением


Ссылка на сообщение

Я не разочарован, т.к. что то в этом роде и предполагал. Было-бы нелепо, если было-бы по другому. Хотя может я и неправ - Linux для меня пока лес темный и дремучий. Однако настаиваю на том, что имеет смысл оставить обе команды.

Вы правы насчет того, что free игнорирует SwapCached, но если подумать логически (и, очевидно, что так сделано неспроста в команде free), какая реальная польза от знания параметра SwapCached? Ну и что с того, что я знаю что в свопе есть какие-то данные, которые снова вернулись в RAM. Такие тонкости важны только при отладке каких то процессов при написании своего софта, который очень интенсивно использует память. А для обычного пользователя гораздо важнее знать две вещи: используется ли swap вообще (то есть его наличие) и сколько его реально используется в данный момент. Ответ на оба вопроса дает free.

Я не пытаюсь переубедить и не уговариваю поменять скрипт - если это интересно знать, кто ж запретит. Просто говорю о том, что реальной пользы (ну для меня лично, как для пользователя), в этой информации нет никакой.

Поделиться сообщением


Ссылка на сообщение

Вчера пропадал свет и слетели разделы на диске.

Диск был разбит на 4 раздела, а остались только два:

/dev/sda1 1 125 1004031 83 Linux

/dev/sda2 126 19457 155284290 83 Linux

И что странно, записи и в целом, 2-й раздел не тронут.

Можно как-то восстановить разделы?

Акронис способен восстановить линуксовые разделы?

Поделиться сообщением


Ссылка на сообщение

Acronis оказался бессильным в моей проблеме.

Не увидел удаленных разделов.

Придется, видать заново все делать. :(

Поделиться сообщением


Ссылка на сообщение

Acronis оказался бессильным в моей проблеме.

Не увидел удаленных разделов.

Придется, видать заново все делать. :(

Сошлись все на этом акронисе...

А какой нить линуксовой утилитой из под лайфсд не пробовал посмотреть?

Поделиться сообщением


Ссылка на сообщение

Сошлись все на этом акронисе...

А какой нить линуксовой утилитой из под лайфсд не пробовал посмотреть?

У меня винда (ХР)

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

Я уже чуть не приступил к форматированию.

Поделиться сообщением


Ссылка на сообщение

У меня винда (ХР)

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

Я уже чуть не приступил к форматированию.

Я тоже под ХР сижу, но вмонтировал старый идешный диск, забросил туда убунту на так, поиграть-поизучать. Часто спасает. Особливо при вирусоопасных поисках в инете...

В любом линуксовом лайфСД есть утилитка для работы с дисками. Попробуй...

На ВЫнь-7 так себе отдельчик сделал даже под линь. На даче попробовать соседские сети поломать ..

Изменено пользователем ProFanas

Поделиться сообщением


Ссылка на сообщение
Загрузил Федору, встроенная утилита для работы с дисками, тоже ничего не обнаружила.

Ладно, буду форматировать все заново.

Спасибо за помощь и отклик.

Поделиться сообщением


Ссылка на сообщение

Загрузил Федору, встроенная утилита для работы с дисками, тоже ничего не обнаружила.

Вот это попробуйте (тестдиск 6.12):

http://www.cgsecurity.org/wiki/TestDisk_Download

Это самая продвинутая программа по восстановлению разделов, которыми мне приходилось пользоваться.

К тому же совершенно бесплатная.

Только нужно терпение и понимание процесса.

Изменено пользователем дядя Фёдор

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти