В отношении экстентов:
Экземпляры заменяют традиционную схему отображения блоков, используемую файловыми системами ext2 / 3. Степень - это диапазон смежных физических блоков, улучшающий производительность файла и уменьшая фрагментацию. Один экстент ext4 может отображать до 128 MiB смежного пространства с размером блока 4 KiB.(из wikipedia)
128 Мб на единицу дает примерно 4 экстента на 500 Мб файла для абсолютно наилучшего возможного сценария. Являются ли ваши «более фрагментированные» файлы в диапазоне 5Gb? Кроме того, это не обязательно означает, что у вас есть много нерегулярных областей ... экстенты могут следовать друг за другом на диске.
Я считаю, что фрагментация - это проблема, когда у вас есть тысячи не-непрерывных регионов из которых составляет несколько килобайт. Если размер экстентов превышает десятки или сотни мегабайт, любые эффекты на производительность незначительны. Расслабьтесь.
Вверх: я автор GPT fdisk (gdisk, sgdisk и cgdisk), поэтому я очень хорошо понимаю структуры данных GPT.
Если Windows загружается в режиме BIOS, то он должен загружаться с диска MBR. Если у вас есть только один диск, то похоже, что Windows загружается в режиме EFI, поскольку на вашем одном диске используется GPT. (Предостережение: если ваша таблица разделов сильно повреждена, скажите с гибридным MBR, что gdisk по какой-то причине не распознает - может быть, это действительно установка в режиме BIOS). Я упоминаю об этом, потому что вы сказали вы выполнили установку в режиме EFI ", потому что [вы] не смогли установить его в режиме Legacy. Правило №1 многопользовательской загрузки в эти дни - установить обе ОС в одном и том же режиме. Другими словами, если ваша установка Windows находится в режиме EFI, установка Ubuntu в BIOS / CSM / устаревший режим - это то, что вы НЕ должны делать. Это может быть немного побочным, так как это звучит так, как будто вы сделали правильные вещи, но я хочу, чтобы это было ясно, потому что есть много плохих процедур, которые предлагают установить в BIOS / CSM / устаревший режим, когда это не должно быть сделано. Я особенно хочу убедиться, что вы не пытаетесь установить BIOS / CSM / устаревший режим, чтобы исправить вашу текущую проблему. Отсутствие информации о том, что у вас действительно установлена установка Windows в режиме BIOS, переустановка Ubuntu в режиме BIOS ничего не создаст, кроме как создать новые проблемы на тех, которые у вас есть.
Теперь, на ваш основной Проблема: я слышал об этом, потому что gdisk сообщает о поврежденной таблице разделов резервного копирования, пользователь исправляет ее, и она снова оказывается поврежденной. Обычная причина в том, что что-то еще перезаписывает таблицу разделов резервного копирования. Иногда это программное обеспечение RAID. Программный RAID на базе материнской платы (часто называемый «поддельный RAID») может сделать это, потому что некоторые такие системы используют пространство в конце диска (куда идут данные резервного копирования GPT) для хранения своих данных. Если у вас есть только один диск, вам не нужен RAID, поэтому вы должны отключить свои настройки RAID в своей прошивке и в не своих операционных системах. Перезагрузка с помощью и без загрузки в Windows может помочь вам разобраться в том, что делает ущерб, и, следовательно, что вам нужно настроить. OTOH, если у вас несколько дисков, и они используются в настройке RAID, вам необходимо активировать поддержку RAID в Ubuntu. Это покрыто многими местами; здесь кажется хорошей отправной точкой, хотя и я не читал ее полностью.
Такие проблемы также могут возникать из-за использования расширенных функций, таких как шифрование диска или программное обеспечение для сжатия дисков. Такие инструменты иногда сбрасывают материал в конце диска, предполагая, что он не используется. (В MBR пространство после финального раздела часто идет впустую, поэтому этот подход часто работает. Он небезопасен, но часто работает.) Если у вас есть такие инструменты, они удаляют их или, по крайней мере, исследуют их, чтобы выяснить если они совместимы с GPT и обновляют или заменяют их, если они не подходят для GPT.
Если эти предложения не помогают, попробуйте извлечь последние несколько секторов диска в файл с помощью dd. Сначала вам нужно выяснить размер диска в секторах (gdisk скажет вам это), затем используйте dd, как в:
sudo dd if=/dev/sda of=foo.img bs=512 skip=100021518
Эта команда копирует содержимое диска , начиная с 100021518, в файл foo.img. Вы хотите установить значение skip= как минимум на 34 меньше, чем количество секторов на вашем диске, поскольку GPT обычно использует последние 33 сектора. Затем вы можете просмотреть полученный файл с помощью hexdump или чего-то подобного, например:
hexdump -C foo.img | less
Идея здесь состоит в том, чтобы искать строки или другие подсказки, которые могли бы рассказать вам, что вызывает проблемы. Конечно, вы должны посмотреть на конец диска, прежде чем ремонтировать его. Заключительных 33 секторов должно быть достаточно, так как это все, что gdisk использует.
Вверх: я автор GPT fdisk (gdisk, sgdisk и cgdisk), поэтому я очень хорошо понимаю структуры данных GPT.
Если Windows загружается в режиме BIOS, то он должен загружаться с диска MBR. Если у вас есть только один диск, то похоже, что Windows загружается в режиме EFI, поскольку на вашем одном диске используется GPT. (Предостережение: если ваша таблица разделов сильно повреждена, скажите с гибридным MBR, что gdisk по какой-то причине не распознает - может быть, это действительно установка в режиме BIOS). Я упоминаю об этом, потому что вы сказали вы выполнили установку в режиме EFI ", потому что [вы] не смогли установить его в режиме Legacy. Правило №1 многопользовательской загрузки в эти дни - установить обе ОС в одном и том же режиме. Другими словами, если ваша установка Windows находится в режиме EFI, установка Ubuntu в BIOS / CSM / устаревший режим - это то, что вы НЕ должны делать. Это может быть немного побочным, так как это звучит так, как будто вы сделали правильные вещи, но я хочу, чтобы это было ясно, потому что есть много плохих процедур, которые предлагают установить в BIOS / CSM / устаревший режим, когда это не должно быть сделано. Я особенно хочу убедиться, что вы не пытаетесь установить BIOS / CSM / устаревший режим, чтобы исправить вашу текущую проблему. Отсутствие информации о том, что у вас действительно установлена установка Windows в режиме BIOS, переустановка Ubuntu в режиме BIOS ничего не создаст, кроме как создать новые проблемы на тех, которые у вас есть.
Теперь, на ваш основной Проблема: я слышал об этом, потому что gdisk сообщает о поврежденной таблице разделов резервного копирования, пользователь исправляет ее, и она снова оказывается поврежденной. Обычная причина в том, что что-то еще перезаписывает таблицу разделов резервного копирования. Иногда это программное обеспечение RAID. Программный RAID на базе материнской платы (часто называемый «поддельный RAID») может сделать это, потому что некоторые такие системы используют пространство в конце диска (куда идут данные резервного копирования GPT) для хранения своих данных. Если у вас есть только один диск, вам не нужен RAID, поэтому вы должны отключить свои настройки RAID в своей прошивке и в не своих операционных системах. Перезагрузка с помощью и без загрузки в Windows может помочь вам разобраться в том, что делает ущерб, и, следовательно, что вам нужно настроить. OTOH, если у вас несколько дисков, и они используются в настройке RAID, вам необходимо активировать поддержку RAID в Ubuntu. Это покрыто многими местами; здесь кажется хорошей отправной точкой, хотя и я не читал ее полностью.
Такие проблемы также могут возникать из-за использования расширенных функций, таких как шифрование диска или программное обеспечение для сжатия дисков. Такие инструменты иногда сбрасывают материал в конце диска, предполагая, что он не используется. (В MBR пространство после финального раздела часто идет впустую, поэтому этот подход часто работает. Он небезопасен, но часто работает.) Если у вас есть такие инструменты, они удаляют их или, по крайней мере, исследуют их, чтобы выяснить если они совместимы с GPT и обновляют или заменяют их, если они не подходят для GPT.
Если эти предложения не помогают, попробуйте извлечь последние несколько секторов диска в файл с помощью dd. Сначала вам нужно выяснить размер диска в секторах (gdisk скажет вам это), затем используйте dd, как в:
sudo dd if=/dev/sda of=foo.img bs=512 skip=100021518
Эта команда копирует содержимое диска , начиная с 100021518, в файл foo.img. Вы хотите установить значение skip= как минимум на 34 меньше, чем количество секторов на вашем диске, поскольку GPT обычно использует последние 33 сектора. Затем вы можете просмотреть полученный файл с помощью hexdump или чего-то подобного, например:
hexdump -C foo.img | less
Идея здесь состоит в том, чтобы искать строки или другие подсказки, которые могли бы рассказать вам, что вызывает проблемы. Конечно, вы должны посмотреть на конец диска, прежде чем ремонтировать его. Заключительных 33 секторов должно быть достаточно, так как это все, что gdisk использует.