BTRFS Как заменить провал / сбой жесткого диска на настройке RAID1 без доступных портов SATA

Проблема в том, что вы используете разные оболочки. Команда echo - это оболочка, встроенная для большинства оболочек, и каждая реализация ведет себя по-своему. Вы сказали, что ваша оболочка по умолчанию - fish . Итак, когда вы запустите эту команду:

~> echo -n "asdasd" | shasum -a 256 | cut -d " " -f 1 | xxd -r -p | base64
X9kkYl9qsWoZzJgHx8UGrhgTSQ5LpnX4Q9WhDguqzbg=

, вы получите результат, показанный выше. Это потому, что эхо из рыбы поддерживает -n . Очевидно, в вашей системе / bin / sh - это оболочка, у которой echo не поддерживает -n . Если echo не понимает -n , то на самом деле печатается -n asdasd \ n . Чтобы проиллюстрировать это, давайте воспользуемся printf , чтобы напечатать именно это:

$ printf -- "-n asdasd\n" 
-n asdasd

Теперь, если мы пропустим это через ваш конвейер:

$ printf -- "-n asdasd\n" | shasum -a 256 | cut -d " " -f 1 | xxd -r -p | base64
IzoDcfWvzNTZi62OfVm7DBfYrU9WiSdNyZIQhb7vZ0w=

Это результат, который вы получите из вашего скрипта. Итак, что происходит, так это то, что echo -n "asdasd" фактически печатает -n и завершающую новую строку. Простое решение - использовать printf вместо echo :

$ printf "asdasd" | shasum -a 256 | cut -d " " -f 1 | xxd -r -p | base64
X9kkYl9qsWoZzJgHx8UGrhgTSQ5LpnX4Q9WhDguqzbg=

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

-4
31.07.2018, 23:03
1 ответ

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

Следующим шагом будет использование btrfs device deleteдля удаления рассматриваемого диска. Команда переместит все фрагменты с выбранного диска на другие диски в пуле в соответствии с вашим профилем BTRFS («Уровни RAID» ). Прежде чем вы сможете запустить команду для удаления устройства, ваши профили, как данные, так и метаданные, должны быть настроены таким образом, чтобы после удаления устройства в вашем пуле все еще были необходимые диски для удовлетворения требований профиля; временное изменение профилей при необходимости.

После того, как диск был удален из пула, вы можете добавить замену с помощьюbtrfs device add /dev/...

Наконец, вы можете использовать btrfs balanceдля перемешивания данных об использовании нового диска.Вам, безусловно, понадобится эта команда, чтобы изменить профили обратно, если вам нужно изменить их временно.

0
28.01.2020, 05:20

Теги

Похожие вопросы