LINUX.ORG.RU

Проблема с таблицей разделов и монтированием ext2

 , , ,


0

2

Здравствуйте! 22 часа, как не могу решить проблему.

Проблема началась с того, что во время переустановки Funtoo я случайно разделил диск, но потом вспомнил, что на нем остались нужные файлы. Я восстановил таблицу разделов с помощью утилиты на systemrescuecd (не помню). Не вдавался в подробности сложного терминального интерфейса утилиты, но диск я смог прочитать, положил данные в отдельную папку и успешно скачал и распаковал stage3. Система установилась и стала грузиться, все нормально.

Но теперь я установил ядро gentoo-sources вместо коробочного debian-sources (так как ноутбук иногда зависает с последним экраном и не реагирует).

Gentoo-sources нормально грузится, все работает. Но не работает монтирование /dev/sda1 в /boot, так что я просто не вижу /boot. Если грузиться в debian-sources, нормально все видно. А в gentoo-sources все утилиты boot-update, mount жауются. Также fdisk -l стал показывать много ram-дисков.

Проблема такая:

# mount /dev/sda1 /boot
mount: special device /dev/sda1 does not exist

# fdisk -l
Диск /dev/ram0: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram1: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram2: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram3: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram4: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram5: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram6: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram7: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram8: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram9: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram10: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram11: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram12: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram13: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram14: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram15: 8 MiB, 8388608 байт, 16384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/sda: 111,8 GiB, 120034123776 байт, 234441648 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x462af8c6

Устр-во    Загрузочный  начало     Конец   Секторы Размер Идентификатор Тип
/dev/sda1  *              2048    264191    262144   128M            83 Linux
/dev/sda2               264192   4458495   4194304     2G            82 Linux св
/dev/sda3              4458496 234442751 229984256 109,7G            83 Linux

# cat /etc/fstab
...
# <fs>			<mountpoint>	<type>		<opts>		<dump/pass>

/dev/sda1		/boot		ext2		noauto,noatime	1 2
/dev/sda2		none		swap		sw		0 0
/dev/sda3		/		ext4		noatime		0 1
#/dev/cdrom		/mnt/cdrom	auto		noauto,ro	0 0

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111,8G  0 disk 
├─sda1   8:1    0   128M  0 part 
├─sda2   8:2    0     2G  0 part 
└─sda3   8:3    0 109,7G  0 part /

# blkid
/dev/sda3: UUID="bf52e7c6-fe5a-49ad-9c63-006a4636caf9" TYPE="ext4"

#  cat /proc/filesystems | grep 'ext*'
	ext3
	ext4
	ext2

# cat /usr/src/linux/.config
...
#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_FS_IOMAP=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y


# dmesg
''' all the white and read lines (and near sda):
[    1.494327] ACPI Warning: GPE type mismatch (level/edge) (20170831/evxface-826)
[    4.530030] pci 0000:00:1d.0: EHCI: BIOS handoff failed (BIOS bug?) 01010001

[    5.165215] OCFS2 User DLM kernel interface loaded
[    5.190611] hpet: number irqs doesn't agree with number of timers
[    5.472965] libata version 3.00 loaded.
[    5.729604] ahci 0000:00:13.0: version 3.0
[    5.729768] ahci 0000:00:13.0: controller can't do DEVSLP, turning off
[    5.739907] ahci 0000:00:13.0: AHCI 0001.0300 32 slots 2 ports 3 Gbps 0x1 impl SATA mode
[    5.739910] ahci 0000:00:13.0: flags: 64bit ncq pm led clo pio slum part deso 
[    5.740566] scsi host0: ahci
[    5.740741] scsi host1: ahci
[    5.740803] ata1: SATA max UDMA/133 abar m2048@0x90804000 port 0x90804100 irq 87
[    5.740805] ata2: DUMMY
[    6.071833] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    6.078814] ata1.00: ATA-9: SanDisk SDSSDA120G, Z32080RL, max UDMA/133
[    6.078816] ata1.00: 234441648 sectors, multi 1: LBA48 NCQ (depth 31/32), AA
[    6.095564] ata1.00: configured for UDMA/133
[    6.095784] scsi 0:0:0:0: Direct-Access     ATA      SanDisk SDSSDA12 80RL PQ: 0 ANSI: 5
[    6.096186] sd 0:0:0:0: [sda] 234441648 512-byte logical blocks: (120 GB/112 GiB)
[    6.096206] sd 0:0:0:0: [sda] Write Protect is off
[    6.096209] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    6.096240] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    6.097244]  sda: sda1 sda2 sda3
[    6.097344] sda: p3 size 229984256 extends beyond EOD, enabling native capacity
[    6.098164]  sda: sda1 sda2 sda3
[    6.098250] sda: p3 size 229984256 extends beyond EOD, truncated
[    6.098614] sd 0:0:0:0: [sda] Attached SCSI disk
[    6.148834] psmouse serio1: synaptics: queried max coordinates: x [..5670], y [..4794]
[    6.158227] EXT4-fs (sda3): INFO: recovery required on readonly filesystem
...
[    7.490392] EXT4-fs (sda3): orphan cleanup on readonly fs
[    7.490536] EXT4-fs (sda3): 4 orphan inodes deleted
[    7.490538] EXT4-fs (sda3): recovery complete
[    7.494308] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null)
[    9.081225] udevd[2267]: starting version 3.2.2
[    9.127775] udevd[2268]: starting eudev-3.2.2

[    9.182601] ACPI: Power Button [PWRF]
[    9.185816] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    9.185872] ACPI: AC Adapter [ADP0] (on-line)
[    9.211123] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    9.211129] ACPI: Battery Slot [BAT0] (battery present)

[    9.223005] r8169 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control
[    9.251009] r8169 0000:03:00.0 eth0: RTL8168g/8111g at 0x000000004478d41e, 28:d2:44:a4:73:82, XID 10900800 IRQ 88

[    9.323449] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    9.326613] udevd[2294]: inotify_add_watch(7, /dev/sda1, 10) failed: No such file or directory
[    9.327055] udevd[2285]: inotify_add_watch(7, /dev/sda2, 10) failed: No such file or directory
[    9.332921] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    9.336635] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    9.336639] cfg80211: failed to load regulatory.db

[ 5343.086258] udevd[8043]: inotify_add_watch(7, /dev/sda1, 10) failed: No such file or directory
[ 5343.087318] udevd[8045]: inotify_add_watch(7, /dev/sda2, 10) failed: No such file or directory
[ 5353.038552] udevd[8047]: inotify_add_watch(7, /dev/sda1, 10) failed: No such file or directory
[ 5353.039418] udevd[8049]: inotify_add_watch(7, /dev/sda2, 10) failed: No such file or directory

Как быть с поломанной таблицей разделов?

Почему одно ядро нормально работает, а второе - нет?

★★

Как быть с поломанной таблицей разделов?

Но если все данные оттуда уже сохранены, то почему бы просто не переразбить диск? Наверно, утилита восстановления что-то нахимичила. Может, метки разделов правильные, а структура какая-то не такая. Хотя судя по логу, там и со свопом что-то не то, а у него, насколько я понимаю, вообще никакой структуры нет: просто набор секторов.

aureliano15 ★★ ()
Ответ на: комментарий от aureliano15

если просто переразбить диск, данные останутся видны?

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

проблема в том, что заново ставить систему = 8 дней.

znavko ★★ ()
Ответ на: комментарий от znavko

если просто переразбить диск, данные останутся видны?

Нет.

проблема в том, что заново ставить систему = 8 дней.

Да, это не торт.

А нельзя затарить корневой раздел на внешний носитель (без /dev/, /proc/ и пр. подобного, разумеется), а потом растарить?

Ну или как вариант попробовать удалить и пересоздать только /boot/ и swap.

aureliano15 ★★ ()
Ответ на: комментарий от aureliano15

затарить на внешний, можно, наверное, только я не знаю, что это и как оно мне поможет.

попробовать удалить и пересоздать только /boot и swap - это как раз вариант для меня.

если я буду действовать по хендбуку https://www.funtoo.org/Install#Prepare_Hard_Disk но не удалю таблицу с опцией 'o' в fdisk а только создам sda1 - до 128Мб и своп sda2 - до 2Гб - а потом запишу таблицу на диск, это не поломает sda3? тогда я смогу скопировать файлы из sda1 на sda3, потом выполнить действия по разбиению sda1, sda2 и тогда залью обратно файлы на sda1 ? я ничего не упускаю, будет достаточно выполнить шаги из хендбука ? или нужно еще что-то?

znavko ★★ ()
Ответ на: комментарий от znavko

все предыдущие попытки восстановления системы, например, когда я удалил udev и binutils, пытаясь собирать с флагом -O3, или когда оказалось, что моя система собрана без поддержки multilib, мне приходилось переустанавливать Funtoo.

znavko ★★ ()
Ответ на: комментарий от znavko

может быть, и затарить. только я нигде такого мануала не встречал. почему без /dev, /sys, /proc - откуда тогда я их возьму потом?

znavko ★★ ()
Ответ на: комментарий от znavko

затарить на внешний, можно, наверное, только я не знаю, что это и как оно мне поможет.

Ну как? Загрузиться с флэшки (чтоб никаких временных файлов, локов и пр. гарантированно не было), примонтировать sda3 и затарить его на внешний диск с относительными путями (относительно корня sda3). Если sda3 поломается при удалении 1-х 2 разделов либо если придётся и его удалять, то потом просто на чистый раздел, загрузившись, опять же, с флэшки/cd/dvd, растарить этот архив со всеми правами. По идее, должна получиться та же система, только без /boot/ и загрузочного раздела. Хотя загрузочный раздел тоже можно dd скопировать. Останется только /boot (если он не читается).

Может старшие товарищи меня поправят, но я подводных камней не вижу.

если я буду действовать по хендбуку

Я не гентушник, поэтому не могу сказать точно.

это не поломает sda3?

С одной стороны, удаление и создание по новой разделов sda1 и sda2 не должно затронуть sda3. Но если на диске непонятно что творится, то и выйти может в результате тоже непонятно что чисто теоретически. Поэтому я бы всё равно на всякий случай затарил.

aureliano15 ★★ ()
Ответ на: комментарий от znavko

все предыдущие попытки восстановления системы, например, когда я удалил udev и binutils, пытаясь собирать с флагом -O3, или когда оказалось, что моя система собрана без поддержки multilib, мне приходилось переустанавливать Funtoo.

Но в данном случае речь идёт не о корявой установке, которую нужно пересобрать. А наоборот мы исходим из того, что система нормальная (в качестве рабочей гипотезы), а проблемы именно с разделами. Если это так, то систему, по идее, можно распаковать в том же виде. Даже если проблемы с ядром, то можно пересобрать ядро, оставив остальное без изменений. Я так думаю. Если нет, то пусть гентушники меня поправят.

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

man tar :-)

почему без /dev, /sys, /proc - откуда тогда я их возьму потом?

Если грузиться с внешнего носителя, то можно, думаю, не заморачиваться и затарить всё. А в общем случае, какой смысл затаривать виртуальные ф/с, если они создаются каждый раз заново? Это не только бессмысленно, но ещё и вредно. И как ты себе представляешь затаривание файла /dev/zero? Бесконечный архив, заполненный нулями?

aureliano15 ★★ ()

mount: special device /dev/sda1 does not exist
[ 6.098164] sda: sda1 sda2 sda3

Кто-то не делает mknod, хотя должен. Либо включайте в своём ядре devtmpfs и не забывайте её монтировать автоматом (можно прямо из ядра, ЕМНИП), либо настраивайте udev/mdev/whatever, чтобы те следили за заполнением /dev.

А с разделами, кажется, всё в порядке.

anonymous ()
Ответ на: комментарий от anonymous

# cat /usr/src/linux/.config | nc termbin.com -t 9999 http://termbin.com/agbo

CONFIG_DEVTMPFS=y

с разделами вот так:

[    6.097344] sda: p3 size 229984256 extends beyond EOD, enabling native capacity
[    6.098164]  sda: sda1 sda2 sda3
[    6.098250] sda: p3 size 229984256 extends beyond EOD, truncated
znavko ★★ ()
Ответ на: комментарий от znavko

Ядро видит разделы, можете убедиться в этом, заглянув в /proc/partitions. Не хватает только файла-дырки.

# CONFIG_DEVTMPFS_MOUNT is not set

Так что mount -t devtmpfs devtmpfs /dev или разбирайтесь, как заставить eudev/udev/что там у вас установлено делать mknod.

Или найдите где-нибудь скрипт MAKEDEV и сделайте ./MAKEDEV sda1 (хотя я не уверен, что он не перестал быть совместимым с современными ядрами). Или сделайте mknod /dev/sda1 8 1 b вручную (но последнее тоже может зависеть от версии и сборки ядра).

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.