Страницы

Поиск по вопросам

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

воскресенье, 9 февраля 2020 г.

как вывести доступное место на жестком диске

#linux #bash #hdd


На одном жестком диске установлены Win10 и linux
нужно узнать сколько осталось всего доступного места? вывод требуется в "одну строку"
типа - 100gb 
и еще вопрос - как узнать сколько "смонтировано в корневую директорию / -"? куда
смотреть? вывод такой же
главное без заморочек всяких
    


Ответы

Ответ 1



Смотрим доступные разделы ~# lsblk Смотрим точки монтирования ~# mount Проверяем все разделы на количество использованного места ~# df -h Смотрим типы фс и размеры партиций ~# fdisk -l Предположим, у вас Win на разделе /dev/sdb1, смотрим сколько там места после монтирования ~# mkdir /mnt/ntfs && mount -t ntfs-3g /dev/sdb1 /mnt/ntfs && df -h /mnt/ntfs Вывод всех команд легко фильтровать до "одной строчки" если вы знаете какой раздел вам нужен - grep/sed/awk

воскресенье, 12 января 2020 г.

Что означают числа ошибок в выводе badblocks?

#ubuntu #hdd


Что означают эти цифры 139/0/0 ?


  Testing with pattern 0xaa: done
  Reading and comparing:  99.12% done, 2:05:16 elapsed. (139/0/0 errors)

    


Ответы

Ответ 1



согласно этому ответу три цифры расшифровываются как: num_read_errors, num_write_errors, num_corruption_errors corruption means comparison with previously written data или: количество_ошибок_чтения, количество_ошибок_записи, количество_ошибок_повреждения «ошибка повреждения» означает — в сравнении с записанными перед этим данными.

Как c помощью c++ можно узнать серийный номер жесткого диска?

#cpp #linux #железо #hdd


Как узнать серийный номер жесткого диска в ОС Линукс?
Да и вообще, как на с++ работать с аппаратным обеспечением компьютера?
    


Ответы

Ответ 1



Как узнать серийный номер жесткого диска в ОС Линукс? В зависимости от того, какой у вас дистрибутив и что в нем есть. Можно использовать разные сторонние утилиты GNU: hdparm -I /dev/sd? | grep 'Serial\ Number' lsblk --nodeps -o name,serial udevadm info --query=all --name=/dev/sda | grep ID_SERIAL ls -al /dev/disk/by-id/ Да и вообще, как на с++ работать с аппаратным обеспечением компьютера? ioctl()

суббота, 11 января 2020 г.

Как безопасно заменить работающий диск в linux raid?

#linux #hdd #raid


Есть программный RAID5 собранный через mdadm (linux raid). И есть необходимость заменить
один из пока ещё исправных томов массива на новый диск. Обычно это делается через отметку
старого диска как неисправного и добавление нового диска с восстановлением массива:

mdadm /dev/md0 -f /dev/sdd1
mdadm /dev/md0 -r /dev/sdd1
mdadm /dev/md0 --add /dev/sdc1


Но перестраивается массив довольно долго и подвержен риску потерять весь массив при
ошибке какого-то ещё диска. Возможно ли как-то использовать исправный старый том во
время добавления нового и так минимизировать риск для массива?
    


Ответы

Ответ 1



По мотивам ответа на unix.SO, такая возможность была добавлена в ядро linux в версии 3.2 (релиз начала 2012 года) и сопутствующие опции появились в mdadm версии 3.3 (релиз в 2013 год был). Поэтому если у вас достаточно свежее ПО, то необходимо добавить новый диск в массив (добавится как spare): mdadm /dev/md0 --add /dev/sdc1 И запросить выполнить замену диска командой: mdadm /dev/md0 --replace /dev/sdd1 --with /dev/sdc1 Эта команда запросит замену диска sdd на sdc. Параметр with необязателен, если его не указать - то будет использован любой spare диск. После этой команды начнётся долгий процесс записи данных на новый диск, после того как новый том будет синхронизирован - он автоматически заменит собой старый. Старый диск sdd при этом будет отмечен как failed и его необходимо будет удалить из массива как обычно: mdadm /dev/md0 -r /dev/sdd1 Если у вас есть только подходящее ядро 3.2+, но старая версия mdadm - то вы можете выполнить такие же операции напрямую через sysfs псевдосистему, сначала добавив новый spare диск mdadm /dev/md0 --add /dev/sdc1 Затем запросить замену: echo want_replacement > /sys/block/md0/md/dev-sdd1/state В общем-то именно это и делает mdadm, потому итог будет таким же: старый диск во время синхронизации нового диска будет работать как обычно, затем станет failed. А вот если ядро более старое - то тогда печально и что-то однозначно удачное предложить сложно. Указанный способ поддерживается для RAID4/5/6 и RAID10. Поддержки RAID1 нет по той простой причине, что в RAID1 уже существенно более давно можно свободно налету менять число дисков в массиве. То есть вместо операции замены одного диска можно расширить массив с двух дисков до трёх, дождаться штатного перестроения, удалить старый диск и сменить число дисков в массиве обратно до 2. Так всё время сохраняются минимум 2 копии данных.

Ответ 2



Если например у вашего raid5 три диска попробуйте добавить четвёртый, одновременно реорганизовать в raid6. Так как у raid6 безопасность предоставляет два сбойных диска можете спокойно пить кофе. Добавляем в raid5 запасной диск: > mdadm --add /dev/md0 /dev/sdc Реорганизуемся в raid6: >mdadm --grow /dev/md0 --level=6 --raid-devices=4 --backup-file=/root/raid5backup Далее удаляем один подозрительный диск: mdadm /dev/md0 -f /dev/sdd1 mdadm /dev/md0 -r /dev/sdd1 И возвращаемся назад в raid5 : >mdadm --grow /dev/md0 --level=5 --raid-devices=3 --backup-file=/root/raid5backup Файл для безопасного копирования /root/raid5backup небольшого размера должен находится физически НЕ в данном массиве.

вторник, 31 декабря 2019 г.

Как в Linux клонировать диск в диск другого размера

#linux #hdd #диск #ssd #клонирование


Имеем Linux - Fedora 22,
HDD - на котором установлена система, 
требуется переехать на SDD который в два раза меньшего размера, но данных на HDD
мало, поэтому влезут.
Оба диска подключены к компьютеру.
Вопрос: как клонировать диск? Желательно средствами GNU Linux.

Уточнения:
1. CD/DVD - нет.
2. gparted - не работает с активным системным разделом.
3. Куда tar архив размещать? в /dev/null ? два диска всего.
4. Диски разного размера!  
    


Ответы

Ответ 1



Все можно сделать, главное аккуратно. Нужны следующие вещи: livecd диск или лучше флешка. Можно другого совместимого дистрибутива, к примеру ubuntu. оба диска должны быть подключены к компу. Процедура переноса. загрузится с live открыть gparted или любую другую любимую утилиту для разбивки диска. разбить ssd как нужно (home, root, swap и дальше по предпочтениям), отформатировать монтируем новые диски и старые. Рекомендую сделать в /mount папку old (для старого диска) и new (для нового). копируем данные. Так как это линукс, то можно с помощью cp, главное сохранить права. К примеру home cp -a /mount/old/home/ /mount/new/home. аналогично копируется корень. Но тут есть особеность - не все нужно копировать. к примеру, папку tmp не нужно (хотя ничего плохого не будет). Если в папка /mount/old/proc и /mount/old/sys что то будет внутри - это копировать не нужно (содержимое этих папок система создает сама). не забываем о boot разделе. если имена устройств поменялись (к примеру, home это был /dev/sda*1*, а стал /dev/sdb*4* - тут важна цифра, а не буква), то открываем файл /mount/new/etc/fstab и правим по феншую. осталось последнее - перенести загрузочную запись. Вначале копируем старый dd if=/dev/sdX of=/path/to/mbr_file.img bs=512 count=1, а потом переносим на новый. Так как мы не хотим потереть таблицу разделов, то нужно не все скопировать. dd if=/path/to/mbr_file.img of=/dev/sdX bs=446 count=1. Все, можно выключать, поставить диски по местам, поправить в биосе загрузочное устройство и пробовать. Что делать, если ничего не завелось? Старый диск скорее всего не поврежден. Так что им можно будет загрузиться. Плюс есть флешка. Можно восстановить. Но если честно, то я переносил немного по другому. Все как выше, разбил диск, скопировал home раздел, потом вытянул старый диск, и загрузился с флешки. И начал установку как обычно. В процессе установки главное не отформатировать home раздел (хотя потом все равно можно скопировать). Так как home раздел есть, то сохранятся все настройки программ. Потом только возможно нужно будет доустановить недостающие программы.

Ответ 2



Очень рекомендую присмотреться к проекту Clonezilla. Умеет копировать как линуксовые, так и виндовые разделы. Грузится с флэшки, болванки, сети, умеет работать в режиме сервера и раздавать образ через мультикаст. Запускается в режиме мастера, на русский переведено подавляющее большинство диалогов. Да, может понадобиться тем же gparted live ужать разделы до размеров влезающих на ssd, но остальные dd и cp -r там не нужны. Есть режим копирования с железки на железку, можно сначала в образ, а потом из образа.

среда, 18 декабря 2019 г.

Как считать S.M.A.R.T параметры с USB-HDD диска?

#c_sharp #железо #hdd


Как считать S.M.A.R.T параметры с USB-HDD диска?
Желательно с примерами кода.
Читал, что программы по типу CrystalDiskInfo содержат информацию по каждому арибуту
SMART для каждого производителя и что нет единой методики считывания этих параметров.
    


Ответы

Ответ 1



Из всего путного, что я нашел - только эта статья (на английском) с примером кода: http://www.know24.net/blog/C+WMI+HDD+SMART+Information.aspx Пример кода рабочий. Удачи.

Ответ 2



Попробуйте поискать в открытых исходниках. Вот например что-то похожее: https://github.com/arhimondr/SMARTMonitoring/blob/master/src/atasmart.c

воскресенье, 15 декабря 2019 г.

Чем можно восстановить битый HDD в Linux

#linux #ubuntu #hdd #раздел


Чем можно поковырять информацию в битом hdd? Диск не открывается, разделы видны -
подсоединены как дополнительные к рабочей Linux системе. На самом битом диске раньше
стоял windows, если это важно :)
Хотелось бы вытащить хотя-бы часть информации.
Интересуют именно варианты для Linux, в частности - ubuntu.
    


Ответы

Ответ 1



Сначала хорошо бы снять дамп прогой ddrescue. И потом уже в спокойно ковырять образ. А вот держать на питании просто так битый диск - вообще ужасная идея. Если он умирает по механие\электронике, то чем меньше его дёргать - тем выше вероятность вытащить инфу. Из софта для восстановления, помиимо photorec, как написал @Владимир-Мартьянов можно ещё попробовать testdisk. Из виндового - сильно помогал R-Studio и Active@ File Recovery. Ещё тут хорошо написано.

Ответ 2



Команда sudo fsck -p /dev/sdxX проверит раздел /dev/sdxX (например, /dev/sda1) на наличие ошибок. UPD: опять сделал очепятку в 'fsck'

суббота, 14 декабря 2019 г.

Замена HDD RAID 1 на более ёмкий HDD [ubuntu]

#ubuntu #hdd #raid


Есть система Ubuntu 16.04 которая стоит на Software Raid 1. Какими способами можно
заменить все HDD в RAID 1 на более ёмкие? Короче говоря, нужно перенести систему с
Software RAID 1 160G на Software RAID 1 500G.
    


Ответы

Ответ 1



Рейд вероятно собран через linux raid, более известный как mdadm. Если есть возможность все 4 диска сразу подключить, то подключаете все диски, размечаете как необходимо. Затем расширяете массив на все 4 диска, raid1 можно без проблем менять число дисков в массиве. mdadm /dev/mdX -a /dev/sdcX mdadm /dev/mdX -a /dev/sddX mdadm --grow /dev/mdX -n 4 Ждёте окончание синхронизации. После этого убираете старые диски и сужаете массив обратно до 2 дисков. mdadm /dev/mdX -f /dev/sdaX mdadm /dev/mdX -r /dev/sdaX mdadm /dev/mdX -f /dev/sdbX mdadm /dev/mdX -r /dev/sdbX mdadm --grow /dev/mdX -n 2 Всё, массив теперь живёт на новых дисках, стрые диски можно физически отключать. Теперь можно сказать mdadm, что надо увеличить размер массива командой mdadm --grow /dev/mdX --size=max Дальнейшие действия в зависимости от того, что на массиве расположено. Если файловая система - то смотря какая файловая система: xfs_growfs, resize2fs или что-то другое. Если LVM - то командой pvresize можно сказать, что размер устройства изменился. Если есть возможности подключить только два диска - то поочерёдно отключаете один старый, добавляете один новый, ждёте синхронизацию массива, отключаете второй старый диск, ставите второй новый. Затем продолжаете с --grow --size=max. Расширить массив на новые диски и только после синхронизации вынимать старые немного надёжнее для пограничного случая, когда вынули 1 диск, а при синхронизации с новым оставшийся старый диск неожиданно помер.

воскресенье, 14 апреля 2019 г.

Как отличить ssd от hdd?

Есть ноутбук. Как не разбирая его узнать, что в нём установлено - ssd или hdd?


Ответ

нажимаешь пуск в строке поиска пишешь > оптимизация дисков . твердотельный накопитель это ssd - жёсткий диск - это hdd

как вывести доступное место на жестком диске

На одном жестком диске установлены Win10 и linux нужно узнать сколько осталось всего доступного места? вывод требуется в "одну строку" типа - 100gb и еще вопрос - как узнать сколько "смонтировано в корневую директорию / -"? куда смотреть? вывод такой же главное без заморочек всяких


Ответ

Смотрим доступные разделы
~# lsblk
Смотрим точки монтирования
~# mount
Проверяем все разделы на количество использованного места
~# df -h
Смотрим типы фс и размеры партиций
~# fdisk -l
Предположим, у вас Win на разделе /dev/sdb1, смотрим сколько там места после монтирования
~# mkdir /mnt/ntfs && mount -t ntfs-3g /dev/sdb1 /mnt/ntfs && df -h /mnt/ntfs
Вывод всех команд легко фильтровать до "одной строчки" если вы знаете какой раздел вам нужен - grep/sed/awk

пятница, 12 апреля 2019 г.

Как в Linux клонировать диск в диск другого размера

Имеем Linux - Fedora 22, HDD - на котором установлена система, требуется переехать на SDD который в два раза меньшего размера, но данных на HDD мало, поэтому влезут. Оба диска подключены к компьютеру. Вопрос: как клонировать диск? Желательно средствами GNU Linux.
Уточнения: 1. CD/DVD - нет. 2. gparted - не работает с активным системным разделом. 3. Куда tar архив размещать? в /dev/null ? два диска всего. 4. Диски разного размера!


Ответ

Все можно сделать, главное аккуратно. Нужны следующие вещи:
livecd диск или лучше флешка. Можно другого совместимого дистрибутива, к примеру ubuntu. оба диска должны быть подключены к компу.
Процедура переноса.
загрузится с live открыть gparted или любую другую любимую утилиту для разбивки диска. разбить ssd как нужно (home, root, swap и дальше по предпочтениям), отформатировать монтируем новые диски и старые. Рекомендую сделать в /mount папку old (для старого диска) и new (для нового). копируем данные. Так как это линукс, то можно с помощью cp, главное сохранить права. К примеру home cp -a /mount/old/home/ /mount/new/home аналогично копируется корень. Но тут есть особеность - не все нужно копировать. к примеру, папку tmp не нужно (хотя ничего плохого не будет). Если в папка /mount/old/proc и /mount/old/sys что то будет внутри - это копировать не нужно (содержимое этих папок система создает сама). не забываем о boot разделе. если имена устройств поменялись (к примеру, home это был /dev/sda*1*, а стал /dev/sdb*4* - тут важна цифра, а не буква), то открываем файл /mount/new/etc/fstab и правим по феншую. осталось последнее - перенести загрузочную запись. Вначале копируем старый dd if=/dev/sdX of=/path/to/mbr_file.img bs=512 count=1, а потом переносим на новый. Так как мы не хотим потереть таблицу разделов, то нужно не все скопировать. dd if=/path/to/mbr_file.img of=/dev/sdX bs=446 count=1
Все, можно выключать, поставить диски по местам, поправить в биосе загрузочное устройство и пробовать.
Что делать, если ничего не завелось?
Старый диск скорее всего не поврежден. Так что им можно будет загрузиться. Плюс есть флешка. Можно восстановить.
Но если честно, то я переносил немного по другому. Все как выше, разбил диск, скопировал home раздел, потом вытянул старый диск, и загрузился с флешки. И начал установку как обычно. В процессе установки главное не отформатировать home раздел (хотя потом все равно можно скопировать). Так как home раздел есть, то сохранятся все настройки программ. Потом только возможно нужно будет доустановить недостающие программы.

четверг, 7 марта 2019 г.

Что означают числа ошибок в выводе badblocks?

Что означают эти цифры 139/0/0 ?
Testing with pattern 0xaa: done Reading and comparing: 99.12% done, 2:05:16 elapsed. (139/0/0 errors)


Ответ

согласно этому ответу три цифры расшифровываются как:
num_read_errors, num_write_errors, num_corruption_errors corruption means comparison with previously written data
или:
количество_ошибок_чтения, количество_ошибок_записи, количество_ошибок_повреждения «ошибка повреждения» означает — в сравнении с записанными перед этим данными.

воскресенье, 21 октября 2018 г.

Замена HDD RAID 1 на более ёмкий HDD [ubuntu]

Есть система Ubuntu 16.04 которая стоит на Software Raid 1. Какими способами можно заменить все HDD в RAID 1 на более ёмкие? Короче говоря, нужно перенести систему с Software RAID 1 160G на Software RAID 1 500G.


Ответ

Рейд вероятно собран через linux raid, более известный как mdadm
Если есть возможность все 4 диска сразу подключить, то подключаете все диски, размечаете как необходимо. Затем расширяете массив на все 4 диска, raid1 можно без проблем менять число дисков в массиве.
mdadm /dev/mdX -a /dev/sdcX mdadm /dev/mdX -a /dev/sddX mdadm --grow /dev/mdX -n 4
Ждёте окончание синхронизации. После этого убираете старые диски и сужаете массив обратно до 2 дисков.
mdadm /dev/mdX -f /dev/sdaX mdadm /dev/mdX -r /dev/sdaX mdadm /dev/mdX -f /dev/sdbX mdadm /dev/mdX -r /dev/sdbX mdadm --grow /dev/mdX -n 2
Всё, массив теперь живёт на новых дисках, стрые диски можно физически отключать. Теперь можно сказать mdadm, что надо увеличить размер массива командой
mdadm --grow /dev/mdX --size=max
Дальнейшие действия в зависимости от того, что на массиве расположено. Если файловая система - то смотря какая файловая система: xfs_growfs, resize2fs или что-то другое. Если LVM - то командой pvresize можно сказать, что размер устройства изменился.
Если есть возможности подключить только два диска - то поочерёдно отключаете один старый, добавляете один новый, ждёте синхронизацию массива, отключаете второй старый диск, ставите второй новый. Затем продолжаете с --grow --size=max. Расширить массив на новые диски и только после синхронизации вынимать старые немного надёжнее для пограничного случая, когда вынули 1 диск, а при синхронизации с новым оставшийся старый диск неожиданно помер.