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

7

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

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

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

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

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

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

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

задан Oli 28.01.2011 в 16:40
источник

4 ответа

4

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

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

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

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

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

  1. Загрузили LiveCD и выбрали "Try Ubuntu"
  2. Установил мой SSD, а также другой диск (для копирования)
  3. Ран

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

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

  4. Я попытался задействовать диск, но получал «занятые устройства» из палимпсест (Disk Utility), поэтому я запустил программу установки! В инсталляторе я просто попросил создать хорошую файловую систему, используя весь накопитель 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. Перезагрузитесь, и вы должны сделать это. Я вернулся, у меня есть метрическая «сволочь» свободного места. Возгласы ликования.
ответ дан Martin Owens -doctormo- 28.01.2011 в 16:48
источник
4

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

    
ответ дан vadipp 25.05.2012 в 12:24
источник
4

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

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 делает бит для бит-копии всего в исходном разделе на целевой раздел, в этом случае он пытается скопировать все скрытое / невидимое пространство в меньший раздел вместе с исходным содержимым. Он не знает и не заботится о том, что он копирует - он не должен быть действительной файловой системой вообще.

    
ответ дан John S Gruber 11.10.2012 в 13:50
источник
0

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

    
ответ дан user215334 13.11.2013 в 11:24
источник

Ознакомьтесь с другими вопросами по меткам