https: //community.nxp. com / thread / 334536 # comment-453692
ошибка связана с проблемой при перепрошивке платы, которая :
вы неправильно прошиваете новое изображение - вы не стираете целиком flash
вы запускаете новое изображение - стирая только те блоки стирания, где вы пишете, но не стирая остальную часть стирания блока.
Я могу представить, что это произойдет, если
nand erase
или РЕДАКТИРОВАТЬ :
ПРИМЕЧАНИЕ. В FAQ по btrfs говорится следующее, как прокомментировал @ jeff-schaller (выделено мной):
btrfs поддерживает RAID-0, RAID-1 и RAID-10. Начиная с Linux 3.9, btrfs также поддерживает RAID-5 и RAID-6, хотя этот код все еще является экспериментальным.
btrfs сначала объединяет все устройства в пул хранения, а затем дублирует фрагменты по мере создания файловых данных. RAID-1 в настоящее время определяется как « 2 копии всех данных на разных устройствах ». Это отличается от MD-RAID и dmraid тем, что они делают ровно n копий для n устройств. В btrfs RAID-1 на трех устройствах по 1 ТБ мы получаем 1,5 ТБ полезных данных . Поскольку каждый блок копируется только на 2 устройства , для записи данного блока требуется только запись в 2 устройства; чтение можно производить только с одного.
RAID-0 определяется аналогичным образом, с разделением полосы по максимально возможному количеству устройств. Устройства 3 × 1 ТБ дают полезное пространство 3 ТБ, но не обеспечивают избыточности.
RAID-10 построен на основе этих определений. Каждая полоса разделяется ровно на 2 набора RAID-1, и эти наборы RAID-1 записываются точно на 2 устройства (следовательно, минимум на 4 устройства). Том btrfs RAID-10 с 6 устройствами по 1 ТБ даст 3 ТБ полезного пространства с 2 копиями всех данных.
На данный момент у меня нет достаточно больших дисков, чтобы проверить это, но я просто предполагаю, что, поскольку у вас относительно большие диски, btrfs просто решил записывать данные на первые два диска.Я ожидал, что это изменится в будущем, когда на диски будет записываться больше данных.
Если вас интересуют мои тесты с меньшими дисками:
Я установил Ubuntu Server 16.04 LTS на виртуальную машину с одним диском SATA, установил ОС на один раздел btrfs.
Затем я добавил еще один диск SATA, разделил его, запустил btrfs device add / dev / sdb1 /
, а затем сбалансировал его при преобразовании в raid1 с помощью btrfs balance start -dconvert = raid1 -mconvert = raid1 /
Я повторил для устройства / dev / sdc1. Результат для меня такой же - у меня есть btrfs, охватывающий три диска. Я также удалил файл размером 2 ГБ, и он действительно был доступен со всех трех дисков. Мой btrfs fi sh
показывает следующее:
Label: none uuid: cdfe192c-36da-4a3c-bc1a-74137abbb190
Total devices 3 FS bytes used 3.07GiB
devid 1 size 10.00GiB used 5.25GiB path /dev/sda1
devid 2 size 10.00GiB used 5.03GiB path /dev/sdb1
devid 3 size 8.00GiB used 2.28GiB path /dev/sdc1
Как вы вызывали mkfs.btrfs? Какая у вас версия btrfs-progs?
# btrfs --version
btrfs-progs v4.4
Я не могу воспроизвести вашу ситуацию. Что произойдет, если вы попытаетесь смонтировать / dev / sdb3?
Если у вас есть виртуальная машина или запасной диск для разбиения на разделы, создайте 3 раздела и попробуйте следующее.
Я создал виртуальную машину Ubuntu 16.04 и разделил / dev / vda на три раздела по 2 ГБ каждый.
# mkfs.btrfs -d raid1 -m raid1 /dev/vda{1..3}
Label: (null)
UUID: 0d6278f7-8830-4a73-a72f-0069cc560aaf
Node size: 16384
Sector size: 4096
Filesystem size: 6.00GiB
Block group profiles:
Data: RAID1 315.12MiB
Metadata: RAID1 315.12MiB
System: RAID1 12.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 3
Devices:
ID SIZE PATH
1 2.00GiB /dev/vda1
2 2.00GiB /dev/vda2
3 2.00GiB /dev/vda3
# btrfs fi sh
Label: none uuid: 0d6278f7-8830-4a73-a72f-0069cc560aaf
Total devices 3 FS bytes used 112.00KiB
devid 1 size 2.00GiB used 614.25MiB path /dev/vda1
devid 2 size 2.00GiB used 315.12MiB path /dev/vda2
devid 3 size 2.00GiB used 315.12MiB path /dev/vda3
Попробуйте смонтировать / dev / vda1, записать в него файл, затем вместо этого смонтировать / dev / vda2 или / dev / vda3 и проверить, есть ли там файл (это определенно должно быть).
PS: Сначала я попробовал это на Arch с btrfs-progs версии 4.10.2 с теми же результатами, но подумал, что, вероятно, Ubuntu 16.04 поставляется с более старой версией, которая может вести себя иначе. Оказывается, он поставляется с v4.4, но, похоже, ведет себя так же в отношении создания файловой системы, зеркалирования и т. Д.
Том теперь использует все диски. Я думаю, предположение Раббана должно быть правильным. Поскольку первые два диска больше третьего, «btrfs просто решил записать данные на первые два диска».
root@one:~# btrfs fi sh
Label: none uuid: 3880b9fa-0824-4ffe-8f61-893a104f3567
Total devices 3 FS bytes used 151.00GiB
devid 1 size 2.73TiB used 148.03GiB path /dev/sda2
devid 2 size 2.73TiB used 148.03GiB path /dev/sdc2
devid 3 size 2.59TiB used 8.00GiB path /dev/sdb3
root@one:~# btrfs dev usage /
/dev/sda2, ID: 1
Device size: 2.73TiB
Data,RAID1: 147.00GiB
Metadata,RAID1: 1.00GiB
System,RAID1: 32.00MiB
Unallocated: 2.58TiB
/dev/sdb3, ID: 3
Device size: 2.59TiB
Data,RAID1: 8.00GiB
Unallocated: 2.58TiB
/dev/sdc2, ID: 2
Device size: 2.73TiB
Data,RAID1: 147.00GiB
Metadata,RAID1: 1.00GiB
System,RAID1: 32.00MiB
Unallocated: 2.58TiB