Показаны сообщения с ярлыком hdd. Показать все сообщения
Показаны сообщения с ярлыком hdd. Показать все сообщения

четверг, 26 ноября 2020 г.

Linux: не осталось свободного места на диске

Интересная проблема обнаружилась. Предположим, есть жесткий диск с файловой системой ext4 на борту, забитый почти под завязку всяким файловым барахлом. Если с ним работать под рутом, то всё хорошо: можно файлы создавать/писать/читать/удалять. Если же это пропробовать делать с правами непривилегированного пользователя, то получим ошибку: на диске не осталось свободного места. Команда df -H тоже показывает, что 0% доступно для непривилегированной учетной записи и 2% для привилегированной.

Оказывается, линукс резервирует на диске 5% для суперпользователя - чтобы даже в случае нехватки свободного места всякие системные процессы продолжали работать, писать журналы, вести дневники и т.п. Поскольку в данном случае такое резервирование не требуется, можно эту величину поправить командой:
sudo tune2fs -m 0 /dev/sdc1

Литература:

https://superuser.com/questions/444269/display-filesystems-free-space-available-to-the-root-user

суббота, 18 августа 2018 г.

Debian: ошибка в работе жесткого диска Seagate

Посыпался WD Caviar Green 1.5Tb. Не такой уж старый - девять лет всего - а вот поди ж ты. Ну, посыпался - и бог с ним, говорят, это у них часто бывает. Пришлось купить на замену Seagate 2Tb IronWolf. Пять месяцев отработал без нареканий, а потом началось. Бывает, смотришь, а точка монтирования пустая - диск отвалился. В логах (по команде dmesg) высыпается такой набор:
[549201.794807] Buffer I/O error on device sdd1, logical block 225329999
[549201.794811] EXT4-fs warning (device sdd1): ext4_end_bio:250: I/O error -5 writing to inode 37618358 (offset 45134135296 size 49152 starting block 225330256)
[549201.801653] EXT4-fs error (device sdd1): ext4_journal_start_sb:327: Detected aborted journal
[549201.801659] EXT4-fs (sdd1): Remounting filesystem read-only
[549201.801662] EXT4-fs (sdd1): previous I/O error to superblock detected
[549201.801673] EXT4-fs (sdd1): ext4_da_writepages: jbd2_start: 9223372036854775807 pages, ino 37618358; err -30
[549201.805986] sd 5:0:0:0: [sdd] Synchronizing SCSI cache
[549202.047724] ata6: SATA link down (SStatus 0 SControl 310)
[549202.047732] ata6.00: link offline, clearing class 1 to NONE
[549202.047740] ata6: EH complete
[549202.047782] sd 5:0:0:0: [sdd]  Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[549202.047786] sd 5:0:0:0: [sdd] Stopping disk
[549202.047794] sd 5:0:0:0: [sdd] START_STOP FAILED
[549202.047796] sd 5:0:0:0: [sdd]  Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[549202.066818] ata6: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen
[549202.066823] ata6: irq_stat 0x00000040, connection status changed
[549202.066826] ata6: SError: { CommWake DevExch }
[549202.066836] ata6: limiting SATA link speed to 1.5 Gbps
[549202.066840] ata6: hard resetting link
[549202.843166] ata6: SATA link down (SStatus 0 SControl 310)
[549202.843174] ata6.00: link offline, clearing class 1 to NONE
[549202.843182] ata6: EH complete
[549202.865848] ata6: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen
[549202.865853] ata6: irq_stat 0x00000040, connection status changed
[549202.865857] ata6: SError: { CommWake DevExch }
[549202.865866] ata6: limiting SATA link speed to 1.5 Gbps
[549202.865869] ata6: hard resetting link
[549203.642603] ata6: SATA link down (SStatus 0 SControl 310)
[549203.642611] ata6.00: link offline, clearing class 1 to NONE
[549203.642619] ata6: EH complete
Что к чему - непонятно. Диск вроде живой, перемонтируешь его или комп перезагрузишь - и опять работает. Наконец, ошибки стали появляться слишком часто, поэтому полез гуглить.

Знающие люди говорят, что, возможно, это потому что диск - sata3, а материнская плата - sata. Т.е., у сигейта такие хитрые настройки или таймауты, что линукс считает, что диск отвалился, и выдает ошибку. Понятных мне варианта решения два: заменить диск или прописать в /etc/default/grub такую опцию:
GRUB_CMDLINE_LINUX="libata.force=1.5Gbps"
и выполнить команду update-grub.

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

UPD 2018-08-28: Не помогло. Следующий вариант - отключить кэширование записи на диск:
hdparm -W0 /dev/sdd
Куда деваться, попробую его. Попутно узнал команды lspci (показывает контроллеры) и hdparm -I /dev/sdd (показывает много всякой интересной информации о диске).

UPD 2019-07-24: Как-то этот костыль худо-бедно работал, а сегодня пришлось отключить компьютер на пару часов, и... И обратно система не поднялась - завалила экран ошибками диска на этапе загрузки. С испугу купил новый диск, и тут выяснилось, что новый, хоть и другая модель, но ведёт себя точно так же. Помогло перетыкание питания - просто один пучок проводков, идущий от БП, заменил на другой. Так что, возможно, все эти ошибки - результат того, что что-то неладно с питанием. Похоже, не диски надо было мучить, а элементарно поставить новый блок питания.

Литература

Disk IO errors on all sata disks, disks dropped out
Ubuntu Freeze Issue After SSD Upgrade
[ubuntu] Problems with the new Seagate 1.5TB hard drives

воскресенье, 27 мая 2018 г.

Ubuntu: отключить автомонтирование

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

К счастью, говорят, это можно отключить. В редакторе настроек (вызывается командой dconf-editor) нужно найти и снять соответствующие галочки в разделе /org/gnome/desktop/media-handling. Нашел. Снял. Посмотрю, поможет ли.

Литература
Mount/USB (Ubuntu documentation, Community Help Wiki)
Tip: Using UUID for mounting disks, the convenient way

пятница, 1 ноября 2013 г.

Windows 7. Восстанавливаем работоспособность системы...

... с помощью убунты и нескольких непечатных слов.

В общем, принесли мне неделю назад ноутбук с такой проблемой. При загрузке Windows 7 starter запускается программа восстановления загрузки, некоторое время крутится, потом выдает ошибку, что восстановление системы невозможно, и предлагает отправить куда-то в майкрософт примерно такое сообщение:
Problem Event Name: StartupRepairOffline
Problem Sig 1: 6.1.7600.16385
Problem Sig 2: 6.1.7600.16385
Problem Sig 3: unknown
Ptrobel Sig 4: 21201028 (тут я не помню, какие на самом деле цифры)
Problem Sig 5: AutoFailover
Problem Sig 6: 11
Problem Sig 7: Corrupt File
Не очень информативно, честно говоря. После этого ноутбук перезагружается, и картина повторяется.

Первым делом захотелось сделать образ диска - с моими кривыми руками весьма своевременное желание. Но вот чем? Полез гуглить. После некоторого поиска набрёл на вот такую табличку. В представленном списке заинтересовали две программы: Clonezilla и Redo Backup and Recovery. Обе под лицензией GPL, обе устанавливаются на флэшку (на ноутбуке CD-привода нет), в общем, то, что нужно.

Сначала, конечно, попытался использовать Clonezilla (в названии прослеживаются аллюзии с мозиллой, значит, решил, солидный софт). Поставил эту ботву на подвернувшуюся под руку флэшку, попытался с нее загрузиться и... Ну, в общем, ясно - загрузиться мне с неё не удалось. Покопался fdisk-ом в разделах и решил, что дело вот в чём. По инструкции первый, загрузочный раздел начинается с 1 сектора, а у меня почему-то с 2048. Победить эту печаль удалось запустив команду fdisk следующим образом:
fdisk -c=dos /dev/sdb
Переразметил диск, распаковал на него архив этой Clonezillы, сделал его загрузочным, прицепил к свободному USB-порту внешний диск для образов, загрузился. Clonezilla пошуршала, и сообщила, что ей потребуется больше сорока часов для создания образа диска объемом 250Gb. Это немножко насторожило, но я согласился. На третьи сутки работы эта чудесная софтина вывалилась по эксепшену, не добежав до финиша примерно 20%.

Второй раз я решил не геройствовать и воспользовался Redo Backup and Recovery. Несмотря на её приятный графический интерфейс обнаружилась интересная особенность: для того, чтобы создать загрузочную флэшку, предлагается загрузиться с CD. Этакий pkunzip.zip в современном исполнении. Свой домашний компьютер перезагружать лень, поэтому воспользовался VirtualBox-ом - примонтировал образ диска, прицепил флэшку, загрузился и закинул на флэшку образ при помощи встроенной утилиты.

Но не тут-то было. Свежезаписанная флэшка грузиться отказалась. Опять. Стал выяснять, чем всё-таки этот чертов загрузочный диск можно на флэшку поместить. Оказалось, что под убунтой есть специальная утилита, usb-creator-gtk, которая подозрительно напомнила то, чем пытался сделать загрузочную флэшку оригинальный Redo B&R. И, как и следовало ожидать, результат получился тот же.

В конце концов обратился к варианту, который не рекомендуют авторы обеих этих утилит, а именно к UNetbootin. И - о, чудо - наконец-то удалось загрузиться почти без проблем. После этого Redo Backup and Recovery бодро проработал 7 часов, и у меня на руках оказался, наконец, вожделенный образ ноутбучного диска. Тогда я еще не знал, что это за образ...

После этого приступил к доламыванию Windows 7. С помощью ноутбучных утилит забрался в Recovery Console и попытался воспользоваться вот этой инструкцией. Безуспешно: в папке c:\windows\system32\config\RegBack файлы DEFAULT, SAM, SECURITY, SOFTWARE и SYSTEM оказались нулевого размера.

Гуглю дальше. Согласно очередной инструкции попытался выполнить вот такой набор команд:
bootrec.exe  /fixmbr
bootrec.exe  /fixboot
bootrec.exe  /RebuildBcd
Последняя команда отрапортовала, что Total identified Windows installations: 0, и, соответственно, ничего она менять не будет. На этот счет обнаружилась другая инструкция, по совету которой выполнил еще несколько команд:
bcdedit /export c:\bcdbackup
attrib c:\boot\bcd -h -r -s
ren c:\boot\bcd bcd.old
bootrec.exe  /RebuildBcd
Ура, ура, на этот раз всё получилось.

Перезагрузил ноутбук. Картина радикально поменялась - Windows перестала запускать даже Recovery Console, зато честно сообщила, чего ей не хватает:
PCIIDEX.SYS
Status: 0xc0000098.
Info: Windows failed to load because a required file is missing, or corrupt
Заинтересовался, как же выглядит этот файл на пострадавшей машине. Самым простым способом, подумалось, будет примонтировать ранее созданный образ к своей убунте и там глянуть. И тут выяснилось, что полученный через тернии образ представляет собой набор из шестидесяти двухгигабайтных файлов, который как примонтировать к линуксу, похоже, не знают сами авторы. Попутно выяснилось, что Redo Backup and Recovery - всего лишь фронтенд для другой утилиты, partclone. Но образ partclone - вроде как один файл, и его убунта монтировать умеет:
sudo dpkg -i partclone-utils_0.1-1_i386.deb
sudo sudo apt-get install nbd-client
sudo imagemount -d /dev/nbd0 -f sda1-partclone.img
sudo mount /dev/nbd0 /media/temp
А тут вместо одного файла что-то хитрое. Решил не мучиться дальше и восстановить образ в виртуалке - благо, дисковое пространство позволяет. Развернул (потребовалось раза в три больше времени, чем на снятие образа), примонтировал командой:
sudo mount -t ntfs /dev/sdb2 /media/notebook-image
и обнаружил, что pciidex.sys, расположенный в папке \windows\system32\drivers, имеет нулевой размер.

Дальше уже дело техники - нашел живую машину с windows 7, сдернул с неё этот файл (он оказался размером 42560 байт), и с помощью всё той же загрузочной флэшки с Redo Backup and Recovery положил этот файл на место нулевого.

И - надо же - всё загрузилось 8-)

среда, 8 июня 2011 г.

Создание и восстановление образа жесткого диска

Вкратце:

1. сохраняем mbr:
dd if=/dev/hda of=backup-hda.mbr count=1 bs=512

2. сохраняем сведения о разделах:
sfdisk -d /dev/hda > backup-hda.sf

3. создаём образы разделов при помощи partimage

Для восстановления поступаем так:

1. записываем на диск mbr из файла:
dd if=backup-hda.mbr of=/dev/hda

2. записываем на диск сведения о разделах:
sfdisk /dev/hda < backup-hda.sf

3. восстанавливаем разделы из образов при помощи partimage

четверг, 19 ноября 2009 г.

Полезные ссылки о том, как подключить к дебиану новый жесткий диск:
http://www.strizhkov.ru/archives/74
http://rblondon.blogspot.com/2007/09/installing-new-hard-disk-on-debian.html

Вкратце (не забывая про sudo):

1. цепляем диск к компу

2. смотрим на название устройств:
fdisk -l

3. создаем раздел:
fdisk /dev/sda
n - новый раздел
w - записать изменения

4. форматируем раздел:
mkfs.ext3 /dev/sda1

5. создаем папку для монтирования:
mkdir /media/my_new_disk

6. в /etc/fstab добавляем строку:
/dev/sda1 /media/my_new_disk ext3 defaults 0 1

UPD В debian 6 немного поменялся fstab, аименно, теперь там разделы идентифицируютя по UUID. Чтобы узнать UUID диска, можно воспользоваться командой:
ls -l /dev/disk/by-uuid