Вы не должны использовать df
потому что это показывает размер, как сообщается файловой системой (в этом случае, ext4).
Используйте dumpe2fs -h /dev/mapper/ExistingExt4
команда для обнаружения реального размера раздела. -h
опция делает dumpe2fs
шоу супер информация о блоке без большого количества других ненужных деталей. От вывода Вам нужны количество блока и размер блока.
... Block count: 19506168 Reserved block count: 975308 Free blocks: 13750966 Free inodes: 4263842 First block: 0 Block size: 4096 ...
Multiplicating эти значения даст размер раздела в байтах. Вышеупомянутые числа, оказывается, идеальное несколько из 1 024:
$ python -c 'print 19506168.0 * 4096 / 1024'
78024672.0
Так как Вы хотите уменьшить раздел на 15 гибибайт (который является временами на 15 мебибайт 1 кибибайт):
$ python -c 'print 19506168.0 * 4096 / 1024 - 15 * 1024 * 1024'
62296032.0
Как resize2fs
принимает несколько видов суффиксов, одного из них быть K
для "1 024 байтов" команда для уменьшения раздела к 62 296 032 кибибайтам становится:
resize2fs -p /dev/mapper/ExistingExt4 62296032K
Без единицы число будет интерпретироваться как несколько blocksize файловой системы (4096 в этом случае). Посмотрите человека resize2fs (8)
Существует это названное учебное руководство: Плохой HowTo Памяти, который обсуждает память отключения через ядро с помощью memmap
аргумент ядру. Согласно практическому руководству у Вас есть 2 опции когда дело доходит до memmap
:
(mem=###M option)
(memmap=#M$###M option)
С первой опцией, если memtest сообщает, что существует плохая память в 600M затем, Вы могли отключить RAM от той точки вплоть до конца RAM с этим:
mem=595M
Если существует плохая RAM в 802M и 807M, можно отключить 10M раздел RAM, запускающейся в 800M как это:
memmap=10M$800M
Примечание: Это поместит в черный список 10M после 800M базовый адрес. Необходимо работать memtest86+
впоследствии, чтобы подтвердить, что этот аргумент корректен.
Существует патч, доступный для Ubuntu по имени BadRam. Это покрыто очень хорошо здесь в этом названном сообщении: BadRAM на Сайте сообщества Ubuntu.
После применения патча к ядру с помощью деталей от той страницы Вы делаете модификации к своей установке Grub2:
выборка от того сайта для Grub2
Файл конфигурации GRUB2 в Аккуратном имеет строку для конфигурирования ядра, плохо таранят исключения. Так, я предположу, что это - предпочтительный способ планировать раздел памяти, которая показывает ошибки. Строка, которую я установил, была
GRUB_BADRAM = "0x7DDF0000,0xffffc000"
Предложенный путь на каждом веб-сайте, который я мог найти, состоял в том, чтобы установить, это должно было выполнить memtest86 и позволить ему показать Вам настройки BadRAM. memtest86 дал мне страницу материала, который я должен был ввести. Я видел, что все адреса были в одном 16K блоке, таким образом, я просто хотел отобразить это 16K неисправный блок. Вот то, как я генерировал корректную запись.
Первый параметр легок. Это - базовый адрес плохой памяти. В моем случае я видел, что все плохие адреса были больше, чем 0x7DDF0000 и меньше, чем 0x7DDF4000. Так, я занял начало 16K блока как мой начальный адрес.
Второй параметр является маской. Вы помещаете 1 с, где диапазон адресов, который Вы хотите, совместно использует те же значения и 0s, где он будет варьироваться. Это означает, что необходимо выбрать диапазон адресов, таким образом, что только биты низкоуровневые варьируются. Смотря на мой адрес, первая часть маски легка. Вы хотите запуститься с 0xffff. Для следующего откусывания объясню я с битовыми массивами. Я хочу колебаться от 0000 до 0011. Так, маска для badram была бы 1100 или шестнадцатеричным c. Последние 3 откусывания должно быть всем 0s в маске, так как мы хотим весь планировавший диапазон. Так, мы получаем общий результат 0xffffc000.
После установки этой строки в/etc/default/grub я выполнил sudo личинку обновления и перезагрузил, и моя плохая память больше не использовалась. Никакие патчи ядра не необходимы для планирования плохой памяти с помощью этого метода.
При просмотре страницы Википедии для memtest86 + это указывает следующим образом:
выборка от страницы Википедии Memtest86
Начиная с Memtest86 2.3 и Memtest86 + 1.60, программа может произвести список плохих регионов RAM в формате, ожидаемом патчем BadRAM для ядра Linux; с помощью этой информации система Linux может надежно использовать модуль RAM, даже если это имеет несколько плохих битов. Grub2 может предоставить эту ту же информацию к неисправленному ядру, инвертируя потребность в патче BadRAM.
Также я столкнулся с этой хинду страницей, которая указала memmap=...
использование шестнадцатеричного адреса, таким образом, Вы могли указать его как это:
memmap=5M$0x2f796c48
5M просто предположение, очевидно, Вы могли скорректировать его ниже или выше в зависимости от того, сколько RAM вокруг того региона Вы хотите/нуждаетесь опустить.
Наконец можно указать размер в шестнадцатеричном числе также:
memmap=0x10000$0x2f796c48
Проигнорировал бы 64 КБ, запускающиеся в адресе 0x2f796c48.
Memtest86 + (я использовал 4.20) может произвести badram формат непосредственно.
Нажмите 'c' для достижения диалога конфигурации
Затем '4' для "режима сообщения об ошибке"
Затем '3' для "шаблонов BadRAM"
Вывод изменится из списка отдельных отказов при испытании к серии badram = строки, каждый содержащий еще один новый поврежденный сектор. Поскольку строки добавляют и объединяют смежные сегменты, можно просто запустить тест, бездисплейный ночной, и использовать распечатанную строку финала (хотя, если у Вас есть действительно плохой dimm менее - точный, "5 megs вокруг этой точки" формат, вероятно, будут вполне немного короче).
Конечный результат:
tesseract ${IMG} stdout
.. затем проверенный и исправленный строка прежде, чем вставить в/etc/default/grub... Вероятно, взял пока ручной ввод его прямо away^^
– eMPee584
06.08.2014, 19:26
Очень грязная и очень приятная работа -вокруг :запустите мемтестер пользовательского пространства и подождите, пока он не найдет ошибку. Пусть он, например, по адресу 0xfce2ea31.
Затем снова запустите memtester, но уже по этому физическому адресу, так что:
memtester -p 0xfce20000 64k 128
Безусловно, лучше пожертвовать не только страницей проблемного адреса. Здесь мы пожертвовали 64 КБ вокруг ошибочного адреса.
Если все прошло хорошо, он снова найдет неисправное место в памяти гораздо быстрее.
Затем приостановите процесс memtester, нажав ctrl/z.
Последствие :пока процесс memtester не будет приостановлен, он не отнимет больше ресурсов, но ни один другой процесс не сможет получить доступ к неисправной памяти . Потому что он будет выделен memtester.
Особенно полезно на больших удаленных серверах. Приостановленный процесс может оставаться до тех пор, пока не будет поставлена новая оперативная память. Или, может быть, до следующего Рождества, когда простои не будут такой большой проблемой.
memmap
опция, но вопрос больше о том, как интерпретировать memtest86 + вывод. Я дал определенный пример memtest86 + вывод и обращаюсь за помощью в конфигурированииmemmap
соответственно в данном случае. 2. "Необходимо выполнить memtest86 + впоследствии, чтобы подтвердить, что этот аргумент корректен". - memtest86 + выполнения перед ядром ОС, таким образом, я серьезно сомневаюсьmemmap
Опция ядра Linux может влиять на него. – Ivan 22.05.2013, 15:31memmap=5M$759M
для Вашего особого случая, данного memtest86 +, перестал работать на уровне 759.5 МБ. 2. Я подразумевал, что необходимо передатьmemmap=...
опция к memtest86 + также. Это было не протестировано/не подтверждено мной, но что-то, что Вы можете делать с memtest86 +. страница – slm♦ 22.05.2013, 15:45