Накопитель сообщает о неправильном свободном месте

Итак, я сменил свой блестящий SATA SSD на еще более блестящий PCI-E SSD. Я запускаю свою основную ОС на SSD, потому что это глупо-быстро. Я сделал это на моем старом SSD, поэтому создал новый раздел EXT4, а затем просто dd перебросил данные (извините, я не знаю точную команду, которую я больше выполнял), и после переустановки grub я загрузился на PCI-E SSD. На первый взгляд все работало отлично, и все работало быстрее, чем когда-либо.

Но потом я заметил свободное место на новом, более крупном диске: оно было почти таким же, как и на другом диске ... Диск, который был вдвое меньше.

Похоже, что я неправильно скопировал файлы, и вместе с ним скопированы некоторые метаданные файловой системы.

Такие инструменты, как du и Disk Usage Analyzer, возвращаются с правильными цифрами. Вещи, которые смотрят на раздел (а не на файлы), похоже, думают, что диск имеет 120 ГБ

Я использовал этот диск уже неделю, так что он не синхронизирован со старым SSD, поэтому выгрузка данных и начинать заново - это не работа, которая наполняет меня радостью, а два вопроса:

  1. Есть ли способ исправить мою файловую систему, чтобы она знала, о чем она на самом деле? fsck e2fsck и badblocks все, кажется, могут сканировать его, не обнаруживая проблем с ним.

  2. Если я снова подключу свой старый SSD, скопирую данные с моего PCI-E на него, а затем скопирую его обратно в новую файловую систему (например, перенесу данные), что является лучшим способом сделать тот? Я, очевидно, хочу сохранить все разрешения и программные ссылки там, где они есть.

7
задан 9 August 2012 в 21:12

4 ответа

Инструмент, который вы использовали dd, не является инструментом копирования файлов, это инструмент копирования дисков, и он копирует байт за байтом. Это означает, что каждый фрагмент информации, включая метаданные о количестве места в разделе на диске, был скопирован.

Вам необходимо сделать полное резервное копирование ваших файлов, отформатировать диск (включая полный формат разделов), создать новый корневой раздел ext4 и заменить диск, а затем скопировать файлы.

После того, как вы скопировали файлы, вам нужно chroot перейти на новую систему и запустить команду update-grub, чтобы установить загрузочную систему на новый диск.

Или вы можете просто запустить новую установку Ubuntu и вернуть файлы обратно.


Что сделал Оли, чтобы это исправить

  1. Загрузился на LiveCD и выбрал «Try Ubuntu»
  2. Подключил мой SSD, а также другой диск (для копирования) [ 1110]
  3. Ран

    sudo rsync -ax /media/ssd /media/backup-drive/ssd-backup
    

    Это занимает много времени. Я сделал некоторую очистку перед копированием, но все еще имел 35 ГБ, и пока я получал пакеты записи ~ 120 МБ / с, это заняло некоторое время. rsync не выдаст вам вывод по умолчанию, но вы можете добавить --progress, если вы хотите извращенное количество деталей (хотя он слишком быстро двигался, чтобы я мог его прочитать - и, возможно, просто замедлил).

    [ 1111]
  4. Я пытался обнулить накопитель, но у меня возникли проблемы с «занятостью устройства» от palimpsest (Дисковая утилита), поэтому я запустил установщик! В инсталляторе я просто сказал ему создать хорошую файловую систему, используя весь SSD-диск, а затем запустил killall ubiquity после того, как он начал копировать файлы.
  5. Затем я удалил все файлы, которые скопировал установщик, затем скопировал резервные файлы:

    sudo rm -rf /media/ssd/*
    sudo rsync -ax /media/backup-drive/ssd-backup /media/ssd
    
  6. Затем я перезагрузился и обнаружил, что мой UUID изменился (очевидно когда вы думаете об этом), поэтому grub2 понятия не имел, откуда загрузиться и взорвался, поэтому я вернулся к LiveCD. Если вы следуете этому руководству, советую пропустить этот шаг;)
  7. Переустановите grub! Я следовал за справочными документами и следовал за выбором chroot. Вы можете обнаружить, что вам нужно отредактировать /etc/fstab, пока вы там.
  8. Перезагрузитесь, и все готово. Я вернулся, у меня есть метрическая "куча" свободного пространства. Возгласы ликования.
0
ответ дан 9 August 2012 в 21:12

На самом деле это нормально, чтобы dd весь диск в другой. Но тогда вам нужно изменить размер разделов, чтобы заполнить новый, больший диск. Вы можете использовать удивительный gparted инструмент разбиения диска для этого. У них тоже есть свой LiveCD.

0
ответ дан 9 August 2012 в 21:12

У меня была эта проблема при изменении размера раздела Linux EX2 с помощью Paragon Partition Manager в Windows. К счастью, у меня было два Linux-раздела EX2, каждый с дистрибутивами Linux. Я смог загрузиться в раздел Linux, размер которого не был изменен, а затем использовал Gparted, чтобы сжать, а затем снова развернуть раздел, который неправильно выделил свободное пространство для файловой системы. Это сработало отлично!

0
ответ дан 9 August 2012 в 21:12

Я предполагаю, что вы делаете что-то вроде:

sudo dd if=/dev/sda98 of=/dev/sda99

где / dev / sda98 имеет размер 12 ГБ, а / dev / sda99 имеет размер 25 ГБ.

Очевидно, что эти имена неверны, но вы поняли.

То, что вы сделали, - это переместили в новый раздел не только данные, но и всю файловую систему, включая все ее метаданные, описывающие, что свободно и что используется. В нем много свободного места, но это свободное пространство не было включено в файловую систему в / dev / sda99, поэтому оно скрыто в конце раздела и совершенно непригодно для использования.

Решение заключается в изменении размера файловой системы, расположенной в разделе:

sudo resize2fs /dev/sda99

она работает в файловых системах EXT2, EXT3 и EXT4.

Сначала вы должны сделать резервную копию.

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

Вы не можете скопировать больший раздел в меньший раздел с помощью dd, если вы не скажете ему копировать только столько с параметром count. dd делает немного для битовой копии всего исходного раздела в целевой раздел, в этом случае он пытается скопировать все скрытое / невидимое пространство в меньший раздел вместе с исходным содержимым. Он не имеет ни малейшего представления о том, что копирует, и не заботится о нем - он вообще не должен быть действительной файловой системой.

0
ответ дан 9 August 2012 в 21:12

Другие вопросы по тегам:

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