Проверить sd карту на ошибки linux

Проверка и анализ состояния накопителей в Linux с помощью консольных утилит badblocks, smartmontools и графической программы GSmartControl


Типы накопителей:

  • Встроенные жёсткие диски;
  • Внешние жёсткие диски;
  • USB-флеш-накопители (сленг. флешка);
  • Карт памяти.

Проверка накопителей средствами badblocks

Утилита badblocks установлена по-умолчанию.

Для просмотра подключенных накопителей и разделов на них, введите команду:

Для проверки накопителя на битые сектора, выполнить команду:

sudo badblocks -v /dev/sdX > badblocks.txt.txt

-v – отображение подробной информации во время работы программы

/dev/sdX – имя устройства, которое необходимо проверить

> badblocks.txt – запись результатов проверки (сохраняется в домашней папке: /home/user)

При наличии битых секторов, можно воспользоваться утилитами: e2fsck (ext2, ext3, ext4), fsck (отличные от ext) для игнорирования системой битых секторов:

sudo e2fsck -l badblocks.txt /dev/sdX

sudo fsck -l badblocks.txt /dev/sdX


Проверка состояния накопителей при помощи S.M.A.R.T.

Установка:

sudo apt-get install smartmontools

Для проверки накопителя на битые сектора при помощи S.M.A.R.T., выполнить команду:

sudo smartctl -a /dev/sdX

/dev/sdX – имя устройства, которое необходимо проверить


Проверка состояния накопителей при помощи GSmartControl

Чтобы установить самую свежую стабильную версию GSmartControl в Ubuntu, можно воспользоваться PPA репозиторием. Для этого выполните последовательно в терминале команды:

sudo sh -c “echo ‘deb http://download.opensuse.org/repositories/home:/alex_sh/Ubuntu_16.04/ /’ > /etc/apt/sources.list.d/gsmartcontrol.list”
wget -nv http://download.opensuse.org/repositories/home:alex_sh/Ubuntu_16.04/Release.key -O Release.key sudo apt-key add – < Release.key sudo apt-get update
sudo apt-get update
sudo apt-get install gsmartcontrol

Установить через центр приложений

Работа с программой:

Выбираем диск и кликаем левой клавишей мыши 2 раза или выбираем диск, потом идём в меню, там жмём на Device, далее жмём View details, далее жмём на вкладку Attributes:

Анализ параметров, выводимых программой

Каждый атрибут имеет величину Value. Value Изменяется в диапазоне от 0 до 255 задается производителем). Низкое значение говорит о быстрой деградации диска или о возможном скором сбое. т.е. чем выше значение Value атрибута, тем лучше. Raw Value – это значение атрибута во внутреннем формате производителя значение малоинформативно для всех кроме сервисманов. Threshold – минимальное возможное значение атрибута, при котором гарантируется безотказная работа накопителя. SMART. Смотрим состояние жесткого диска. Если VALUE стало меньше THRESH – Атрибут считается failed и отображается в столбце WHEN_FAILED. При значении атрибута меньше Threshold очень вероятен сбой в работе или полный отказ. WORST- минимальное нормализованное значение. Это минимальное значение, которое достигалось с момента включения SMART на диске. Атрибуты бывают критически важными (Pre-fail) и некритически важными (Old_age). Выход критически важного параметра за пределы Threshold фактический означает выход диска из строя, выход за пределы допустимых значений не критически важного параметра свидетельствует о наличии проблемы, но диск может сохранять свою работоспособность.

Критичные атрибуты

Raw Read Error Rate  – частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска.

Spin Up Time  – время раскрутки пакета дисков из состояния покоя до рабочей скорости. При расчете нормализованного значения (Value) практическое время сравнивается с некоторой эталонной величиной, установленной на заводе. Не ухудшающееся не максимальное значение при Spin Up Retry Count Value = max (Raw равном 0) не говорит ни о чем плохом. Отличие времени от эталонного может быть вызвано рядом причин, например просадка по вольтажу блока питания.

Spin Up Retry Count  – число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной. Ненулевое значение Raw (соответственно не максимальное Value) свидетельствует о проблемах в механической части накопителя.

Seek Error Rate – частота ошибок при позиционировании блока головок. Высокое значение Raw свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное термическое расширение дисков, механические проблемы в блоке позиционирования и др. Постоянное высокое значение Value говорит о том, что все хорошо.

Reallocated Sector Count  – число операций переназначения секторов. SMART в современных дисках способен произвести анализ сектора на стабильность работы “на лету” и в случае признания его сбойным, произвести его переназначение.

Некритичные атрибуты:

Start/Stop Count  – полное число запусков/остановов шпинделя. Гарантировано мотор диска способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold. Первые модели дисков со скоростью вращения 7200 оборотов/мин имели ненадежный двигатель, могли перенести лишь небольшое их число и быстро выходили из строя.

Power On Hours  – число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MTBF). Обычно величина MTBF огромна, и маловероятно, что этот параметр достигнет критического порога. Но даже в этом случае выход из строя диска совершенно не обязателен.

Drive Power Cycle Count – количество полных циклов включения-выключения диска. По этому и предыдущему атрибуту можно оценить, например, сколько использовался диск до покупки.

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

Current Pending Sector Count – Число секторов, являющихся кандидатами на замену. Они не были ещё определены как плохие, но считывание их отличается от чтения стабильного сектора, так называемые подозрительные или нестабильные сектора.

Uncorrectable Sector Count  – число ошибок при обращении к сектору, которые не были скорректированы. Возможными причинами возникновения могут быть сбои механики или порча поверхности.

UDMA CRC Error Rate – число ошибок, возникающих при передаче данных по внешнему интерфейсу. Могут быть вызваны некачественными кабелями, нештатными режимами работы.

Write Error Rate – показывает частоту ошибок происходящих при записи на диск. Может служить показателем качества поверхности и механики накопителя.

Проверка и анализ состояния накопителей в Linux с помощью консольных утилит badblocks, smartmontools и графической программы GSmartControl


Типы накопителей:

  • Встроенные жёсткие диски;
  • Внешние жёсткие диски;
  • USB-флеш-накопители (сленг. флешка);
  • Карт памяти.

Проверка накопителей средствами badblocks

Утилита badblocks установлена по-умолчанию.

Для просмотра подключенных накопителей и разделов на них, введите команду:

Для проверки накопителя на битые сектора, выполнить команду:

sudo badblocks -v /dev/sdX > badblocks.txt.txt

-v – отображение подробной информации во время работы программы

/dev/sdX – имя устройства, которое необходимо проверить

> badblocks.txt – запись результатов проверки (сохраняется в домашней папке: /home/user)

При наличии битых секторов, можно воспользоваться утилитами: e2fsck (ext2, ext3, ext4), fsck (отличные от ext) для игнорирования системой битых секторов:

sudo e2fsck -l badblocks.txt /dev/sdX

sudo fsck -l badblocks.txt /dev/sdX


Проверка состояния накопителей при помощи S.M.A.R.T.

Установка:

sudo apt-get install smartmontools

Для проверки накопителя на битые сектора при помощи S.M.A.R.T., выполнить команду:

sudo smartctl -a /dev/sdX

/dev/sdX – имя устройства, которое необходимо проверить


Проверка состояния накопителей при помощи GSmartControl

Чтобы установить самую свежую стабильную версию GSmartControl в Ubuntu, можно воспользоваться PPA репозиторием. Для этого выполните последовательно в терминале команды:

sudo sh -c “echo ‘deb http://download.opensuse.org/repositories/home:/alex_sh/Ubuntu_16.04/ /’ > /etc/apt/sources.list.d/gsmartcontrol.list”
wget -nv http://download.opensuse.org/repositories/home:alex_sh/Ubuntu_16.04/Release.key -O Release.key sudo apt-key add – < Release.key sudo apt-get update
sudo apt-get update
sudo apt-get install gsmartcontrol

Установить через центр приложений

Работа с программой:

Выбираем диск и кликаем левой клавишей мыши 2 раза или выбираем диск, потом идём в меню, там жмём на Device, далее жмём View details, далее жмём на вкладку Attributes:

Анализ параметров, выводимых программой

Каждый атрибут имеет величину Value. Value Изменяется в диапазоне от 0 до 255 задается производителем). Низкое значение говорит о быстрой деградации диска или о возможном скором сбое. т.е. чем выше значение Value атрибута, тем лучше. Raw Value – это значение атрибута во внутреннем формате производителя значение малоинформативно для всех кроме сервисманов. Threshold – минимальное возможное значение атрибута, при котором гарантируется безотказная работа накопителя. SMART. Смотрим состояние жесткого диска. Если VALUE стало меньше THRESH – Атрибут считается failed и отображается в столбце WHEN_FAILED. При значении атрибута меньше Threshold очень вероятен сбой в работе или полный отказ. WORST- минимальное нормализованное значение. Это минимальное значение, которое достигалось с момента включения SMART на диске. Атрибуты бывают критически важными (Pre-fail) и некритически важными (Old_age). Выход критически важного параметра за пределы Threshold фактический означает выход диска из строя, выход за пределы допустимых значений не критически важного параметра свидетельствует о наличии проблемы, но диск может сохранять свою работоспособность.

Критичные атрибуты

Raw Read Error Rate  – частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска.

Spin Up Time  – время раскрутки пакета дисков из состояния покоя до рабочей скорости. При расчете нормализованного значения (Value) практическое время сравнивается с некоторой эталонной величиной, установленной на заводе. Не ухудшающееся не максимальное значение при Spin Up Retry Count Value = max (Raw равном 0) не говорит ни о чем плохом. Отличие времени от эталонного может быть вызвано рядом причин, например просадка по вольтажу блока питания.

Spin Up Retry Count  – число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной. Ненулевое значение Raw (соответственно не максимальное Value) свидетельствует о проблемах в механической части накопителя.

Seek Error Rate – частота ошибок при позиционировании блока головок. Высокое значение Raw свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное термическое расширение дисков, механические проблемы в блоке позиционирования и др. Постоянное высокое значение Value говорит о том, что все хорошо.

Reallocated Sector Count  – число операций переназначения секторов. SMART в современных дисках способен произвести анализ сектора на стабильность работы “на лету” и в случае признания его сбойным, произвести его переназначение.

Некритичные атрибуты:

Start/Stop Count  – полное число запусков/остановов шпинделя. Гарантировано мотор диска способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold. Первые модели дисков со скоростью вращения 7200 оборотов/мин имели ненадежный двигатель, могли перенести лишь небольшое их число и быстро выходили из строя.

Power On Hours  – число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MTBF). Обычно величина MTBF огромна, и маловероятно, что этот параметр достигнет критического порога. Но даже в этом случае выход из строя диска совершенно не обязателен.

Drive Power Cycle Count – количество полных циклов включения-выключения диска. По этому и предыдущему атрибуту можно оценить, например, сколько использовался диск до покупки.

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

Current Pending Sector Count – Число секторов, являющихся кандидатами на замену. Они не были ещё определены как плохие, но считывание их отличается от чтения стабильного сектора, так называемые подозрительные или нестабильные сектора.

Uncorrectable Sector Count  – число ошибок при обращении к сектору, которые не были скорректированы. Возможными причинами возникновения могут быть сбои механики или порча поверхности.

UDMA CRC Error Rate – число ошибок, возникающих при передаче данных по внешнему интерфейсу. Могут быть вызваны некачественными кабелями, нештатными режимами работы.

Write Error Rate – показывает частоту ошибок происходящих при записи на диск. Может служить показателем качества поверхности и механики накопителя.

Несколько раз приходилось форматировать флешки (к которым относятся и различные SD и microSD карточки), а поскольку происходит это довольно редко — вынужден был лезть в гугл. Конспективная памятка по форматированию флешек под Linux:

Проверить подключение flash

fdisk -l
Выведет список подключенных дисков и их разделов. Обычно флешка — /dev/sdb, но нужно обязательно проверить, так ли это!

Проверить, примонтирована ли флешка

df -h
Если флешка примонтирована — покажет это и точку монтирования. Перед форматированием — отмонтировать: umount /dev/sdb.

Проверить защиту от записи и геометрию

При желании — можно проверить защиту от записи и геометрию (защита от записи в линуксе не важна):
hdparm /dev/sdb.

Если нужно низкоуровневое форматирование — забить нулями

dd if=/dev/zero of=/dev/sdb.
В выводе покажет объем флешки (должен соответствовать заявленному), скорость и время записи. Также покажет, сколько было записано байт на флешку, что полезно при проверке флешки на физические ошибки (см. ниже).

Проверить на физические ошибки

head -c N /dev/sdb | md5sum
head -c N /dev/zero | md5sum
где N равно числу байт, записанных на флешку при помощи dd. Если контрольные суммы не совпадают — флешка «битая» или были ошибки записи (в реальности сталкивался с форматированием microSD через плохой кард-ридер — даже когда не выскакивали ошибки ввода-вывода при операциях — контрольные суммы не совпадали, с заменой кард-ридера проблема ушла).
Пример:

dimio@ibm $ dd if=/dev/zero of=/dev/sdb
dd: запись в «/dev/sdb»: На устройстве кончилось место
3932161+0 записей считано
3932160+0 записей написано
скопировано 2013265920 байт (2,0 GB), 1010,99 c, 2,0 MB/c
dimio@ibm $ head -c 2013265920 /dev/zero | md5sum
5d0fd6273bed1c500c6fc22d86a59630 -
dimio@ibm $ head -c 2013265920 /dev/sdb | md5sum
5d0fd6273bed1c500c6fc22d86a59630 -

Ну и для полного счастья при желании:

dimio@ibm $ perl -we '
> print "OK" if q{5d0fd6273bed1c500c6fc22d86a59630}
> eq q{5d0fd6273bed1c500c6fc22d86a59630};'
OK

Разбиваем на разделы при помощи fdisk

fdisk /dev/sdb
Опции: m — справка, d — удалить раздел, p — просмотреть список разделов, n — создать раздел, t — поменять тип раздела, w — сохранить изменения.

Последний шаг — создать файловые системы на разделах флешки

mkfs.ext{2,3,4} /dev/sdbX
где X — порядковый номер раздела, на котором нужно создать файловую систему.
Также полезны: mkfs.msdos, mkfs.vfat (создаёт «стандартную» файловую систему флешек — vfat).

Если что-то осталось непонятным или есть дополнения и замечания — добро пожаловать в комментарии! 🙂

каталог интернет магазинов Москвы

Perl, Linux, программирование, настройка и что-нибудь ещё…

I’ve tried running running a disk check, then I got a complain

pi@raspberrypi ~ $ /sbin/fsck
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
/dev/mmcblk0p2 is mounted.

WARNING!!!  The filesystem is mounted.   If you continue you ***WILL***
cause ***SEVERE*** filesystem damage.

Do you really want to continue<n>? no
check aborted.
pi@raspberrypi ~ $ umount -l /dev/mmcblk0p2
umount: it seems /dev/mmcblk0p2 is mounted multiple times

Do I have to umount, what are the steps for a safe umount?

Update:

pi@raspberrypi ~ $ mount
/dev/root on / type ext4 (rw,noatime,nodiratime,user_xattr,barrier=1,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=118872k,nr_inodes=29718,mode=755)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=23788k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=47560k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro)

pi@raspberrypi ~ $ cat /etc/mtab
rootfs / rootfs rw 0 0
/dev/root / ext4 rw,noatime,nodiratime,user_xattr,barrier=1,data=ordered 0 0
devtmpfs /dev devtmpfs rw,relatime,size=118872k,nr_inodes=29718,mode=755 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=23788k,mode=755 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=47560k 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
/dev/mmcblk0p1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0

pi@raspberrypi ~ $ cat /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime,nodiratime,nodiratime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that

I also see this in dmesg:

[    3.054577] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:3a:ff:c1
[    4.592609] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 47900
[    4.611794] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 31567
[    4.630805] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 23732
[    4.647041] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 4871
[    4.662074] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 4653
[    4.662256] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 4514
[    4.662344] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 4465
[    4.677977] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 3989
[    4.678142] EXT4-fs (mmcblk0p2): 8 orphan inodes deleted
[    4.685881] EXT4-fs (mmcblk0p2): recovery complete
[    8.631347] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    8.644244] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    8.654677] devtmpfs: mounted
[    8.661103] Freeing init memory: 124K
[   10.414514] udevd[139]: starting version 175
[   21.263308] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[   21.967590] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[   22.849536] bcm2835 ALSA card created!
[   22.855703] bcm2835 ALSA chip created!
[   22.875121] bcm2835 ALSA chip created!
[   22.885884] bcm2835 ALSA chip created!
[   22.894074] bcm2835 ALSA chip created!
[   22.902271] bcm2835 ALSA chip created!
[   22.910319] bcm2835 ALSA chip created!
[   22.918129] bcm2835 ALSA chip created!

I’ve tried running running a disk check, then I got a complain

pi@raspberrypi ~ $ /sbin/fsck
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
/dev/mmcblk0p2 is mounted.

WARNING!!!  The filesystem is mounted.   If you continue you ***WILL***
cause ***SEVERE*** filesystem damage.

Do you really want to continue<n>? no
check aborted.
pi@raspberrypi ~ $ umount -l /dev/mmcblk0p2
umount: it seems /dev/mmcblk0p2 is mounted multiple times

Do I have to umount, what are the steps for a safe umount?

Update:

pi@raspberrypi ~ $ mount
/dev/root on / type ext4 (rw,noatime,nodiratime,user_xattr,barrier=1,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=118872k,nr_inodes=29718,mode=755)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=23788k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=47560k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro)

pi@raspberrypi ~ $ cat /etc/mtab
rootfs / rootfs rw 0 0
/dev/root / ext4 rw,noatime,nodiratime,user_xattr,barrier=1,data=ordered 0 0
devtmpfs /dev devtmpfs rw,relatime,size=118872k,nr_inodes=29718,mode=755 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=23788k,mode=755 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=47560k 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
/dev/mmcblk0p1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0

pi@raspberrypi ~ $ cat /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime,nodiratime,nodiratime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that

I also see this in dmesg:

[    3.054577] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:3a:ff:c1
[    4.592609] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 47900
[    4.611794] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 31567
[    4.630805] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 23732
[    4.647041] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 4871
[    4.662074] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 4653
[    4.662256] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 4514
[    4.662344] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 4465
[    4.677977] EXT4-fs (mmcblk0p2): ext4_orphan_cleanup: deleting unreferenced inode 3989
[    4.678142] EXT4-fs (mmcblk0p2): 8 orphan inodes deleted
[    4.685881] EXT4-fs (mmcblk0p2): recovery complete
[    8.631347] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    8.644244] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    8.654677] devtmpfs: mounted
[    8.661103] Freeing init memory: 124K
[   10.414514] udevd[139]: starting version 175
[   21.263308] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[   21.967590] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[   22.849536] bcm2835 ALSA card created!
[   22.855703] bcm2835 ALSA chip created!
[   22.875121] bcm2835 ALSA chip created!
[   22.885884] bcm2835 ALSA chip created!
[   22.894074] bcm2835 ALSA chip created!
[   22.902271] bcm2835 ALSA chip created!
[   22.910319] bcm2835 ALSA chip created!
[   22.918129] bcm2835 ALSA chip created!
  • Home
  • Forum
  • The Ubuntu Forum Community
  • Ubuntu Official Flavours Support
  • Hardware
  • [ubuntu] [SOLVED] Check Disk on SD/MicroSD Card?

  1. [SOLVED] Check Disk on SD/MicroSD Card?

    I have a microSD in my Blackberry that somehow got corrupted. My Blackberry says that I need to run a disc check for errors and try to fix them. I am not sure how to do this in Ubuntu (Ibex).

    Any help?


  2. Re: Check Disk on SD/MicroSD Card?

    Quote Originally Posted by anxiousdog
    View Post

    I have a microSD in my Blackberry that somehow got corrupted. My Blackberry says that I need to run a disc check for errors and try to fix them. I am not sure how to do this in Ubuntu (Ibex).

    If the card is using FAT/FAT32/VFAT filesystem (Most likely), plug it into a card reader/writer, plug that into your Ubuntu system (or enable Disk / USB Mass Storage Device mode in the Blackberry, if such an option is available).

    Your card should now be visible on the desktop; right click it and unmount it.

    Open a terminal (Applications-Accessories-Terminal) and give the command

    Code:

    sudo fsck -a /dev/sdd1

    (Replace /dev/sdd1 with the actual partition device for the micro sd card). fsck = File Systen ChecKer.

    Note that there is a (small) chance that you can lose data by this; it _may_ delete corrupted file entries.

    If you have any doubts about which device or file type or so on, the following information (with the card plugged in) will be helpful for a quick response when you post back

    Code:

    sudo fdisk -l
    mount
    dmesg | tail -20

    If the fsck is successful, it will not return any output.

    Post back with more details (as above) if you have any questions.


  3. Re: Check Disk on SD/MicroSD Card?

    Thanks!

    This is the error I get with the fsck:

    anxiousdog@ubuntu1:~$ sudo fsck -a /dev/sdg
    fsck 1.41.3 (12-Oct-2008)
    fsck.ext2: Bad magic number in super-block while trying to open /dev/sdg
    /dev/sdg:
    The superblock could not be read or does not describe a correct ext2
    filesystem. If the device is valid and it really contains an ext2
    filesystem (and not swap or ufs or something else), then the superblock
    is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>


  4. Re: Check Disk on SD/MicroSD Card?

    Quote Originally Posted by anxiousdog
    View Post

    This is the error I get with the fsck:

    Try

    Code:

    sudo fsck -a /dev/sdg1

    Usually, the device will be /dev/sdg, and the partition /dev/sdg1.


  5. Re: Check Disk on SD/MicroSD Card?

    Quote Originally Posted by anxiousdog
    View Post

    This is the error I get with the fsck:

    Try

    Code:

    sudo fsck -a /dev/sdg1

    Usually, the device will be /dev/sdg, and the partition /dev/sdg1.


  6. Re: Check Disk on SD/MicroSD Card?

    Quote Originally Posted by anxiousdog
    View Post

    This is the error I get with the fsck:

    Try

    Code:

    sudo fsck -a /dev/sdg1

    Usually, the device will be /dev/sdg, and the partition /dev/sdg1.


  7. Re: Check Disk on SD/MicroSD Card?

    Quote Originally Posted by prshah
    View Post

    Try

    Code:

    sudo fsck -a /dev/sdg1

    Usually, the device will be /dev/sdg, and the partition /dev/sdg1.

    That was it! It repaired 8 bad sectors and deleted the offending file(s). It’s working great now!! Thanks so much.


  8. Re: [SOLVED] Check Disk on SD/MicroSD Card?

    Hello,

    I am also needing to do the same thing but am not sure which device is the SD card. Would you be able to help me out? Would be very much appreciated.
    The only external hardware device that I is plugged in is the SD card.

    Device Boot Start End Blocks Id System
    /dev/sda1 1 6 48163+ de Dell Utility
    /dev/sda2 * 7 9054 72678060 7 HPFS/NTFS
    /dev/sda3 9055 9315 2096482+ f W95 Ext’d (LBA)
    /dev/sda4 9316 9729 3325455 db CP/M / CTOS / …
    /dev/sda5 9055 9315 2096451 dd Unknown

    Many thanks in advance.
    Max


  9. Re: [SOLVED] Check Disk on SD/MicroSD Card?

    Quote Originally Posted by Max Avion
    View Post

    The only external hardware device that I is plugged in is the SD card.

    Unfortunately, I can’t see it either. Try the below commands in the terminal (Applications-Accessories-Terminal)

    a) Unplug the device
    b) wait 10 seconds
    c) plug the device back in, then give this command, and post back the output

    Code:

    sleep 10 && dmesg | tail -23

    d) Also post the output of the command (That’s small letter «L», not «1»)


  10. Re: [SOLVED] Check Disk on SD/MicroSD Card?

    Thank you very much for the reply PRShah. Sorry for taking so long to reply. Here is the information that you asked for.

    Code:

    $ sleep 10 && dmesg | tail -23 
    
    [  253.768149] wlan0: no IPv6 routers present
    [  613.534011] CPU0 attaching NULL sched-domain.
    [  613.534041] CPU1 attaching NULL sched-domain.
    [  613.540295] CPU0 attaching sched-domain:
    [  613.540317]  domain 0: span 0-1 level MC
    [  613.540324]   groups: 0 1
    [  613.540346]   domain 1: span 0-1 level CPU
    [  613.540352]    groups: 0-1
    [  613.540363] CPU1 attaching sched-domain:
    [  613.540379]  domain 0: span 0-1 level MC
    [  613.540385]   groups: 1 0
    [  613.540394]   domain 1: span 0-1 level CPU
    [  613.540410]    groups: 0-1
    [  927.484026] CE: hpet increasing min_delta_ns to 15000 nsec
    [  927.484026] CE: hpet increasing min_delta_ns to 22500 nsec
    [  927.484026] CE: hpet increasing min_delta_ns to 33750 nsec
    [  927.484026] CE: hpet increasing min_delta_ns to 50624 nsec
    [ 1195.747189] type=1505 audit(1240031879.459:5): operation="profile_replace" name="/usr/share/gdm/guest-session/Xsession" name2="default" pid=8451
    [ 1195.995670] type=1505 audit(1240031879.706:6): operation="profile_replace" name="/usr/lib/cups/backend/cups-pdf" name2="default" pid=8456
    [ 1195.997291] type=1505 audit(1240031879.710:7): operation="profile_replace" name="/usr/sbin/cupsd" name2="default" pid=8456
    [ 1872.157284] mmc0: new high speed SD card at address b368
    [ 1872.519013] mmcblk0: mmc0:b368 SMI   1997312KiB 
    [ 1872.519118]  mmcblk0:

    Code:

    $ sudo fdisk -l 
    
    Disk /dev/sda: 80.0 GB, 80026361856 bytes
    255 heads, 63 sectors/track, 9729 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0xd0f4738c
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1           6       48163+  de  Dell Utility
    /dev/sda2   *           7        9054    72678060    7  HPFS/NTFS
    /dev/sda3            9055        9315     2096482+   f  W95 Ext'd (LBA)
    /dev/sda4            9316        9729     3325455   db  CP/M / CTOS / ...
    /dev/sda5            9055        9315     2096451   dd  Unknown

    FYI: It is a 2GB MicroSD card plugged into the computer via SD adapter card.

    Thank you again for your help, I really appreciate it.

    Cheers,

    Max


Tags for this Thread

Bookmarks

Bookmarks


Posting Permissions

Are there any SD Card diagnostic utility programs out there for Ubuntu? I would like to run tests on my SD card to check capacity, write speed etc. I have one for windows but I am looking for a Linux flavor and hope to find some source code.

landroni's user avatar

landroni

5,8037 gold badges33 silver badges57 bronze badges

asked Oct 20, 2011 at 20:29

Eae's user avatar

Look for Disk Utility on you dash (as an option press Alt+F2 and type palimpsest)

enter image description here

Click on the disk you want information from, to test it click on Benchmark

enter image description here

To start benchmark, select Read only or Read/Write benchmark

enter image description here

answered Oct 20, 2011 at 20:45

Bruno Pereira's user avatar

Bruno PereiraBruno Pereira

72.6k33 gold badges199 silver badges223 bronze badges

6

For Ubuntu 13.04 and later…


From the dash

Find <code>disks</code> in the launcher

From the command line

gnome-disks

Usage

Select the disk you wish to test.
enter image description here
Find the menu in the top right and select Benchmark…

enter image description here

A window will appear. Click Start Benchmark… to see:
enter image description here

I left the defaults and clicked Start Benchmarking…. It will run for a while, building the chart over time.
enter image description here
You can see that my new SD card’s read rate is around 7 MB/s, while the write rate is only slightly over 2 MB/s.

The model shown here is a SanDisk Ultra SDXC with an advertised speed of up to 30 MB/s. As you can see, the transfer rate is not as advertised.

Community's user avatar

answered Jun 11, 2014 at 19:19

Drew Noakes's user avatar

Drew NoakesDrew Noakes

5,5785 gold badges41 silver badges55 bronze badges

Reported Capacity

$ df -h /media/sdcard

Real capacity and write speed

$ dd if=/dev/zero of=/media/sdcard/testfile bs=10M
1xx+0 records in 1xx+0 records out 9xx bytes (9.4 GiB) copied, 34.xx seconds, 271 MB/s

dd will fill up all the space. Remove the testfile afterwards.

Rael Gugelmin Cunha's user avatar

answered Oct 20, 2011 at 20:39

cweiske's user avatar

cweiskecweiske

3,2492 gold badges32 silver badges41 bronze badges

3

There is also f3 (Repository, doc), that specifically aims at detecting fraudulent cards (f3 stands for «fight flash fraud»).

It was suggested here first.

answered May 29, 2020 at 14:12

MayeulC's user avatar

MayeulCMayeulC

3163 silver badges5 bronze badges

Способ проверки, используя программы, которые уже есть в Linux по умолчанию.

Подключаем и монтируем диск/флешку/карту.

Выясняем путь устройства:

sudo fdisk -l

В ответе будет что-то вроде:

...
Диск /dev/sda: 931,5 GiB, 1000204886016 байт, 1953525168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: dos
Идентификатор диска: 0x536dd479
...
Диск /dev/sdb: 14,4 GiB, 15485370368 байт, 30244864 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0xa8790229

Устр-во    Загрузочный начало   Конец Секторы Размер Идентификатор Тип
/dev/sdb1                8192   93596   85405  41,7M             c W95 FAT32 (LBA)
/dev/sdb2               94208 3370369 3276162   1,6G            83 Linux

По объему и разделам можно сориентироваться, какое из устройств то самое, которое требуется проверить. В примере флешка — это Диск /dev/sdb: 14,4 GiB. У неё есть разделы /dev/sdb1 и /dev/sdb2. Если проверить надо полностью все разделы, то указываем /dev/sdb:

sudo badblocks -v /dev/sdb > badblocks.txt

Найденные ошибки запишутся в текстовый файл.

В моем случае ошибок не оказалось:

d1mon@desktop:~$ sudo badblocks -v /dev/sdb > badblocks.txt
Checking blocks 0 to 15122431
Checking for bad blocks (read-only test): done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)

Понравилась статья? Поделить с друзьями:
  • Проверить scanf на ошибку
  • Причиной ошибки может быть исправление шифрования credssp
  • Проверить html код на ошибку
  • Причиной ошибки может быть защита от атак credssp
  • Проверить hdd на ошибки и исправить