NMT-200 ЧаВо

WD30EZRX

Статья WildFlexy от 06.06.2011
Редакция от 08.06.2011

Попал мне в руки новенький HDD — трехтерабайтник от WDC. Модель WD30EZRX. Информации о использовании этой модели, как и вообще 3TB HDD, с медиаплеерами ряда Popcorn Hour C-200 и A-200/210 в Интернет маловато. На Wiki-сайте networkedmediatank.com/wiki/ описана модель WD30EZRS с SATA-2. И судя по комментарию, у их автора руки растут с неправильного места.
Так что приступим к экспериментам.

Да! К «Идущим по стопам» — будьте предельно внимательны с командами, изменяющими структуру дисков и размечающих разделы. Каждое неверное телодвижение, например, непродуманный копипаст команд из данной статьи, может лишить вас накопленных файлоархивов в одно мгновение.

Кому некогда «экспериментировать», могут перейти сразу к делу.


Сначала досмотрим

На лейбочке нет явного указания что диск SATA-3 или 6Gbps. Но есть надпись Class B и Canada ICES, что говорит о его качестве.
Производство Таиланд (никаких негативных ассоциаций), дата 22 марта 2011 (первой свежести, но не первых партий — тоже хорошо).

Есть надпись в рамке For minimum system requirements for capacities greater than 2.18TB, visit http://products.wdc.com/largecapacitydrives. Ради интереса сходил и посмотрел с чем он совместим.
С таблички понятно, что поддержка подобных HDD присутствует в продуктах от Microsoft — от Windows Vista 32-bit до Windows 7 64-bit, и в Apple MacOS Леопардах 10.5/10.6.
Слово Linux указано, но как всегда такая широкая подача у меня вызывает улыбку — можно было сказать просто «операционная система». Linux бывает разный, и, столкнувшись с его сборками в embedded-системах, обязательно нарвешься на то, что как раз поддержки больших дисков там не было и не будет никогда.

Также есть упоминание об Advanced Format — те самые 4K-сектора, которые для дисков от 2TB уже норма и не должны пугать пользователя.

Положение джамперов на крышке не расписано — есть только нумерация пинов. Чтобы выяснить что с ними делать, предлагают сходить и покопаться на www.wdc.com/support. Но они мне не интересны — я же обычный пользователь, для меня важно чтобы включил и поехали.

Ставим

Вынимая WD20EARS с кармана, я ощутил разницу в весе — по спеке новый весит 730 грамм, а «старая» двушка всего 640.
При установке на горячую в карман C-200, диск плавно набрал обороты с «реактивным» присвистом. После разгона блинов звук пропал (наверное турбина отключилась), и он заработал относительно тихо. Но вибрация на корпус явно больше чем от WD20EARS c 700 часами наработки. Винт тяжелее, блинов больше, скорости вращения не заоблачные и балансируют их явно не так прецизионно, как для более оборотистых собратьев.

Смотрим в dmesg (который перед установкой был зачищен командой dmesg -c):

PCH-C200[~]# dmesg
...
ata1: hard resetting port
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata1.00: ATA-8: WDC WD30EZRX-00MMMB0, 80.00A80, max UDMA/133
ata1.00: 5860533168 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata1.00: configured for UDMA/133
...
scsi 0:0:0:0: Direct-Access     ATA      WDC WD30EZRX-00M 80.0 PQ: 0 ANSI: 5
ata1: dev 0 max request 256 sectors (lba48)
sd 0:0:0:0: [sdc] Very big device. Trying to use READ CAPACITY(16).
sd 0:0:0:0: [sdc] 5860533168 512-byte hardware sectors (3000593 MB)
...

Есть наш клиент — WDC WD30EZRX-00M — Very big device! :)
Устройство ему выдалось как sdc и емкость, сообщенная диском — 3000593 MB (по спеке на сайте 3,000,592 MB). Помня, что производители дисков используют нормальные десятичные миллионы (мега = 1 000 000), а не программистские бинарные («меби» 1024*1024=1 048 576), в последних емкость будет меньше — 2861588MiB или 2,79ТiB. Привожу эту цифирь, чтобы потом софтом можно было проверить эффективность нарезки.

Как не надо делать с дисками емкостью свыше 2TB

Старый добрый fdisk

PCH-C200[~]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x706b5eff.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: The size of this disk is 3.0 TB (3000592982016 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): c
DOS Compatibility flag is not set

Command (m for help): u
Changing display/entry units to sectors

Command (m for help): p

Disk /dev/sdc: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x706b5eff

Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-1565565871, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4294967294, default 4294967294):
Using default value 4294967294

Command (m for help): p

Disk /dev/sdc: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x706b5eff

Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048  4294967294  2147482623+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Попытка разметить раздел

PCH-C200[~]# mkfs.ext3 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
134217728 inodes, 536870652 blocks
26843532 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
16384 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Форматировало около 20 минут. Результат проверим монтированием в новый каталог:

PCH-C200[~]# mkdir /share/dd
PCH-C200[~]# mount -t ext3 /dev/sdc1 /share/dd
PCH-C200[~]# cd /share/dd
PCH-C200[dd]# df -h .
Filesystem                Size      Used Available Use% Mounted on
/dev/sdc1                 2.0T    198.2M      1.9T   0% /opt/sybhttpd/localhost.drives/USB_DRIVE/dd

Явно не то что доктор прописал. Fdisk же явно пальцем показал — идите вы к «parted» с такими объемами. :)
Отмаунчу раздел и продолжим.

PCH-C200[/]# umount /dev/sdc1

P.S. Разметка диска с помощью штатной процедуры — Установка Приложений NMT с форматированием диска — делается без применения GPT. Поэтому общий доступный объем раздела с данными не превышает 2 TB (проверено с прошивкой Popcorn Hour C-200 от мая 2011).

Как надо «нарезать» большие диски

Итак — нам все-таки потребуется parted с поддержкой GPT — GUID Partition Table.

PCH-C200[/]# parted /dev/sdc
GNU Parted 2.3
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? y
Error: Partition(s) 16 on /dev/sdc have been written, but we have been unable to inform the kernel of the change, probably because it/they are in
use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.
Ignore/Cancel? i
(parted) mkpart ext3 2048s 100%
...
Error: Partition(s) 16 on /dev/sdc have been written, but we have been unable to inform the kernel of the change, probably because it/they are in
use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.
Ignore/Cancel? i
(parted) print
Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdc: 3001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
1      17.4kB  3001GB  3001GB               primary

(parted) quit
Information: You may need to update /etc/fstab.

Пояснения:
Все имеющиеся вопросы жму на Ignore (i), так как это последствия моей предыдущей попытки нарезать диск. У вас такого может и не быть, если диск девственно чист.
Команда mklabel gpt записывает таблицу GPT вместо старинного MBR.
Команда mkpart ext3 2048s 100% создает единственный раздел для Linux ext3 с сектора 2048 по последний (100%) доступный блок на диске.
print — вывод информации о разделах, quit — выход из parted

Теперь, после разметки раздела, запишем на него структуру файловой системы Ext3 со значениями по умолчанию. Префикс time перед командой mkfs.ext3 даст выяснить время форматирования.

PCH-C200[/]# time mkfs.ext3 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
183148544 inodes, 732566636 blocks
36628331 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
22357 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

real    32m57.839s
user    0m17.680s
sys     17m25.770s

Долго? Ну естественно — 183 миллиона i-node заготовить!

Смонтирую и посмотрю что получилось

PCH-C200[~]# mount -t ext3 /dev/sdc1 /share/dd
PCH-C200[~]# df -h /share/dd
Filesystem                Size      Used Available Use% Mounted on
/dev/sdc1                 2.7T    201.1M      2.5T   0% /opt/sybhttpd/localhost.drives/USB_DRIVE/dd

Общий объем 2,7TiB, но доступно только 2,5 — 200 гигабайт скушал резерв под суперпользователя.
Уберу резерв через tune2fs и проверю снова:

PCH-C200[~]# umount /share/dd
PCH-C200[~]# tune2fs -m 0 /dev/sdc1
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 0% (0 blocks)
PCH-C200[~]#  mount -t ext3 /dev/sdc1 /share/dd
PCH-C200[~]# df -h /share/dd
Filesystem                Size      Used Available Use% Mounted on
/dev/sdc1                 2.7T    201.1M      2.7T   0% /opt/sybhttpd/localhost.drives/USB_DRIVE/dd

Итак — 2,7TiB доступно. А начальная 2,79TiB. На издержки ушло ~ 90 гигабайт — немало но терпимо.

Немного соптимизирую диск для хранения видео (он же для медиаплеера). Укажем для файловой системы больший размер i-node.
По умолчанию mkfs из установленного busybox/LTU считает, что каждый i-node описывает состояние 4х блоков (16 килобайт), а я задам 64 блока (256К или 262144). Сразу, при форматировании, уберу резерв под суперпользователя и задам метку раздела 3TBEZRX.

PCH-C200[~]# umount /share/dd
PCH-C200[~]# time mkfs.ext3 -i262144 -m0 -L 3TBEZRX /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=3TBEZRX
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
11446784 inodes, 732566636 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
22357 block groups
32768 blocks per group, 32768 fragments per group
512 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

real    12m40.043s
user    0m5.680s
sys     1m17.860s

Разница в форматировании — 20 минут — 11 миллионов i-node все-таки попроще создать, чем 183 миллиона.
И, по привычке, чтобы лог не засоряло просьбами о проверке диска:

PCH-C200[/]# tune2fs -c0 /dev/sdc1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1

После перезагрузки (reboot):

PCH-C200[/]# df -h /3TBEZRX
Filesystem                Size      Used Available Use% Mounted on
/dev/sda1                 2.7T    201.1M      2.7T   0% /opt/sybhttpd/localhost.drives/SATA_DISK_A1
PCH-C200[/]# chmod -R 777 /3TBEZRX

Свободная емкость от увеличения i-node не меняется. Меняется только скорость чтения/записи для длинных файлов.

Температурный режим WD30EZRX

Несмотря на больший вес, WD30EZRX стремится быть холодным. И это у него получается.
Периодический контроль после проходов mkfs не превысил 45°C. Это с учетом температуры помещения +25 и работающего на 5 вольтах 60мм вентилятора вытяжки на штатном месте C-200.
Ждал значений повыше, но этого не произошло. Хотя, будучи пессимистично настроенным оптимистом, я не уверен в соблюдении им прохлады после 3 тыс часов работы.

Вывод Smart-параметров:

PCH-C200[/]# smartctl -a /dev/sda
smartctl 5.40 2010-10-16 r3189 [mips-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     WDC WD30EZRX-00MMMB0
Serial Number:    WD-WCAWZ0448478
Firmware Version: 80.00A80
User Capacity:    3 000 592 982 016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Jun  3 01:42:02 2011 GMT-11
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x80) Offline data collection activity
was never started.
Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection:                 (49800) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 255) minutes.
Conveyance self-test routine
recommended polling time:        (   5) minutes.
SCT capabilities:              (0x3035) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate     0x002f   100   253   051    Pre-fail  Always       -       0
3 Spin_Up_Time            0x0027   155   155   021    Pre-fail  Always       -       9233
4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       12
5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       4
10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       10
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       8
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       31
194 Temperature_Celsius     0x0022   111   110   000    Old_age   Always       -       41
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
1        0        0  Not_testing
2        0        0  Not_testing
3        0        0  Not_testing
4        0        0  Not_testing
5        0        0  Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Управляемость через hdparm

PCH-C200[/]# hdparm -S180 -M128 -B255 /dev/sda

/dev/sda:
setting Advanced Power Management level to disabled
HDIO_DRIVE_CMD failed: Input/output error
setting acoustic management to 128
setting standby to 180 (15 minutes)
APM_level      = not supported
acoustic      = 128 (128=quiet ... 254=fast)

И снова, как и для 2TB дисков, управление APM не дается легко. Поможет ли wdidle3 (подробнее)? Не факт. Но проверять не стал, так как у хозяина HDD плеер не используется в качестве сетевой качалки торрентов.
За краткое время работы с данным диском я не заметил агрессивного проявления энергосбережения IntelliPower™ и безопасности IntelliPark™- счетчик парковки головок Load_Cycle_Count рос только при перезагрузке плеера и приблизительно соответствовал Start_Stop_Count.


Метод разметки HDD c GPT в ext3

  1. определяем букву нового диска, смотря в dmesg
  2. parted /dev/sdбуква
    • в нем mktable gpt
    • и mkpart МеткаРаздела ext3 2048s 100% — где МеткаРаздела — символьное «имя диска», которое будет отображаться в интерфейсе медиаплеера на TV при подключении
    • quit — выходим из parted
  3. mkfs.ext3 -m0 -T largefile -L МеткаРаздела /dev/sdбуква1
  4. tune2fs -c0 /dev/sdбуква1

И все! Сложно? Нет! Страшно? Естественно! :)

После перезагрузки медиаплеера не забудьте сделать chmod -R 777 /МеткаРаздела — иначе все Приложения, запускаемые от имени пользователя nmt (Samba, FTP, Tranmission) не смогут писать на созданный раздел.


Резюме

Медиаплеер на базе Sigma 8643 на встроенных SATA-контроллерах аппаратно поддерживает диски 3TB.
Но штатными средствами для плееров Popcorn Hour C-200/A-200/A-210 диск размечается некорректно, ввиду применения старой MBR вне зависимости от размеров диска.
При этом бортовой Linux корректно работает с разделами GPT. Применяя parted, из комплекта LTU, диск может быть успешно размечен на максимальный размер.
Исходя из вышеприведенного, диск WD30EZRX может быть использован на полную емкость в медиаплеерах Popcorn Hour C-200/A-200/A-210 без дополнительных аппаратных средств.

Плюсы:
Больший объем (в Ext3 WD20EARS — размечается на 1.8TiB, WD30EZRX — 2.7TiB) на единицу места.
Тихий в работе — операции поиска 29 акустических децибелл.
Минусы:
Высокая стоимость ~4930р (WD20EARS всего 2330р).
Большая вибрация при работе — возможно это особенность конкретного экземпляра. При установке в медиаплеер Popcorn Hour C-200 без дополнительных прокладок под ножки, вибрация передается на поверхность тумбы.
Громкий «турбинный» звук старта-стопа. Если плееру, установленному в спальне, приспичит усыпить шпиндель HDD среди ночи, море эмоций обеспечено.
Больший вес и большая инерция, чем для двухтерабайтных HDD, требует большей аккуратности обращения с плеером при работающем HDD.

Спасибо Дмитрию Нагорскому, любезно предоставившему HDD WD30EZRX для экспериментов
Спасибо Padavan за правку статьи

11 комментариев к этой записи

  • Domestic

    Спасибо WildFlexy!!!

  • Padavan

    Внес коррекции
    1) mkpart лучше сразу указывать начало с номера сектора 2048s, а конец как 100%.
    2) когда тип таблицы gpt, то primary указывать не нужно, это только для mbr. Вместо этого в gpt ставится метка раздела.
    3) Форматировать лучше сразу с параметром -T largefile, уже полностью выяснено, что размер блока всегда остается 4096 байт, но инодов создается меньше, на каждый мегабайт всего 1 инод. Т.е. потерь в хвостах в любом случае будет не больше, однако будет больше свободного места. Медиабиблиотека всегда хранит достаточное кол-во файлов больше 1 мегабайта, чтобы скомпенсировать кол-во инодов на очень малые по размеру файлы.

    Чтобы проверить правильность разметки в parted, вбиваем команды
    unit s {переводим отображение на секторы}
    print

    • WildFlexy

      1) Да, согласен
      2) primary — наследие MBR — да прочел доку, а что имеется ввиду под mkpart МеткаРаздела? В доке http://www.gnu.org/software/parted/manual/parted.html#mkpart не нашел такого синтаксиса.
      3) 256К или 1M — на усмотрение пользователя. Тут дело вкуса
      Вопрос про «больше места» — если увеличение размера i-node дает прирост доступного дискового пространства, то почему нет разницы в выводе df для i-node=4K и для i-node=256K ? Нужен ликбез

  • Padavan

    В gpt нет понятий primary, extended, logical. В ней можно строгать сколько угодно равноправных разделов.

    Parted имеет общий синтаксис mkpart для многих типов таблиц, поэтому для mbr таблицы нужно обязательно указывать тип в первом параметре, для gpt там указывается метка. Когда сделаете print для mbr и gpt дисков, сразу увидите разницу. В gpt таблице для каждого раздела выделено специальное место, где можно задать имя разделу. Но это не Label файловой системы.

    «i-node=4K и для i-node=256K»
    не 4K, а 16K. По умолчанию 4 инода на 4 блока. Странно, что разницы не было. В первом случае создалось 183148544 инодов, каждый инод занимает 256 байт. Итого под таблицу инодов ушло 44.7 ГБ. Во втором случае создалось 11446784 инодов, каждый занимает 256 байт. Итого под таблицу инодов ушло 2.7 ГБ. Нужно было повторить для -T largefile. Повторюсь еще раз — окончательно выяснено, что размер кластера всегда 4096 байт (равный размеру блока), независимо от inode ratio. Т.е. потери в хвостах всегда одинаковы, однако, чем больше inode ratio, тем меньше создается инодов, тем меньше они занимают места, тем меньше можно адресовать файлов и директорий. При -T largefile на раздел 1ГБ влезет НЕ БОЛЬШЕ 1000 файлов, неважно какого они размера, поскольку создастся всего 1000 инодов. Даже при наличии свободного места, на раздел нельзя будет записать больше файлов. Учитывая, что медиабиблиотека всегда имеет большие файлы, это съэкономит большое кол-во инодов для мелких файлов (которые меньше 1МБ).

    Скорее всего не было разницы потому, что вы отобразили df в human единицах. В данном случае, отображено в десятых терабайта. Одна десятая терабайта — это сто гигабайт, поэтому не видно разницы между 3 и 44ГБ. Т.е. и там и там 2.7ТБ. Если вывести в гигабайтах, разницу станет видно.

    • WildFlexy

      Понятно более-менее.

      Зачем нужно пальцами указывать конкретный сектор вытекает из описания на Wiki
      Старт раздела с данными начинается с LBA34, что есть 512*34=17408 байт. Это целочисленно не делится на 4096 (размер сектора в Advanced Format).
      Следовательно будет тормоз при записи, когда диск, своей бортовой логикой, будет ждать дописки данных в каждый незавершенный сектор.

      Только исходя из этого старт данных можно делать с любого сектора, начиная с 40 (40s), кратного 8 (4096/512).
      Но почему тогда с 2048s ?

      • Padavan

        При установке Debian и Ubuntu Linux, диски в установщике как раз разбиваются через parted. Они разбиваются автоматически именно с сектора 2048. У меня все двутеры в GPT, форматированы в XFS, все разбито через установщик. Все с 2048 сектора. Попробуйте в винде7 разбить диск. Будет то же самое. Так принято. Мы тоже следуем этому хорошему тону. Или жалко 1МБ в начале диска? Пусть себе пустует.

  • a200user

    WildFlexy, спасибо за статью!

    Простите за ламерский вопрос, но есть ли способ отформатировать WD30EZRX таким образом, чтобы структура разделов была аналогична той, что Попкорн создал бы своими штатными средствами (три логических плюс раздел для файлов подкачки)?

    У меня – модель A-200, и мне бы не хотелось устанавливать приложения на флешку, но вот на этот самый WD30EZRX.

    Сам диск можно было бы разметить и отформатировать или подключив его к десктопу, загрузившись Линукс или в какой-нибудь из лёгких Линукс дистрибютивов, или средствами Попкорна через терминал, организованный через приложения, временно установленные на флешке. А уж потом – загрузившись в Попкорн с одним лишь отформатированным диском внутри, поставить туда приложения (если это возможно в данном случае возможно).

    К сожалению, мне совершенно неизвестны подробности о структуре разделов и о работе Попкорна с ними, учитывая необходимость применения GPT. Да и в Линуксе тоже не силён…

    Заранее благодарю за любую помощь!

    • WildFlexy

      Аналогично штатной — это будет секас, аналогичный описанному здесь: http://nmt200.ru/hand/wildflexy/wd20ears-ptv-np101s
      И то я не совсем уверен, что A-200 через свой USB-SATA мост отдаст диск более 2TB (это я к тому — будет виден или нет HDD через USB-шнурок).

      А вообще идеология следующая:
      Сам медиаплеер не форматирует с GPT. Нужно поставить на него приложения штатными средствами с форматированием диска. Затем снять копию с разделов с приложенияими (dd), не забыть UUID сохранить и вывод от fdisk -lu.
      Потом нарезать с GPT через parted, установив размер разделов аналогично тому что было у fdisk -lu. Но последний раздел растянуть до конца диска. Указать swap-разделу его тип.
      Вернуть раздел приложений с помощью dd, выставить UUID с помощью tune2fs, перезапуститься и работать.

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

      • a200user

        Ага, спасибо, интересно… Значит, на десктопе.

        Т.е. надо следовать процедуре по Вашей ссылке вплоть до использования fdisk. А затем, если исключить промежуточные проверки, то следующий набор команд должен бы сделать дело (брал за основу Вашу разметку WD20EARS):

        parted /dev/
        (parted) mklabel gpt
        (parted) mkpart ext3 2048s 516065s
        (parted) mkpart linux-swap 516066s 1528160s
        (parted) mkpart ext3 1528161s 100%
        (parted) quit
        time mkfs.ext3 /dev/1
        time mkfs.linux-swap /dev/2
        time mkfs.ext3 -i262144 -m0 -L  /dev/3
        tune2fs -c0 /dev/1
        tune2fs -c0 /dev/2
        tune2fs -c0 /dev/3
        chmod -R 777 /

        Ну, а дальше — восстановить раздел приложений с файла как указано (и впредь снова по тексту):
        dd if=/mnt/f/syb.iso of=/dev/sdc bs=512 seek=2048

        Опасаюсь, что мог что-то здесь напутать… Про UUID, как его сохранить и восстановить?

        • a200user

          Попробую ещё раз, подразумевая, что WD30EZRX определился как sdc, а метка логического диска, на котором будет находиться контент и которая будет видна пользователю — MetkaDiska:

          parted /dev/sdc
          (parted) mklabel gpt
          (parted) mkpart ext3 2048s 516065s
          (parted) mkpart linux-swap 516066s 1528160s
          (parted) mkpart ext3 1528161s 100%
          (parted) quit
          time mkfs.ext3 /dev/sdc1
          time mkfs.linux-swap /dev/sdc2
          time mkfs.ext3 -i262144 -m0 -L MetkaDiska /dev/sdc3
          tune2fs -c0 /dev/sdc1
          tune2fs -c0 /dev/sdc2
          tune2fs -c0 /dev/sdc3
          chmod -R 777 /MetkaDiska
        • WildFlexy

          В общем — идеология верна :)

          А UUID выдается по команде

          blkid

          Сохранить — копипастом куда-нибудь в текстовичок.
          Вернуть — через tune2fs, указав в параметрах командной строки как

          tune2fs /dev/sdxX -U "ваш старый UUID"
Предыдущая запись
«
Следующая запись
»
2010–2017 © NMT-200 ЧаВо