LINUX.ORG.RU

Сломанная кодировка и parted

 , ,


0

2

Добрый вечер.

Давно хотел перейти с debian на gentoo, вот вчера собрался, наконец, записал liveusb и принялся за дело, обложившись мануалами. Проблема появилась сразу. Руководства настоятельно советовали превратить мою таблицу разделов mnt в gpt, поскольку у меня не биос, а UEFI. Хорошо, при помощи gdisk конвертировал.

Следующий шаг — надо было перекроить пространство, я хотел отрезать кусок пустого места от раздела home, чтобы создать новый, больший root. Работал в gparted, по неясным для меня причинам он отказывается уменьшить раздел, сообщая об ошибке (рис. 1).

Тогда я решил выкачать с home самые нужные данные, гигабайт 20, и залить их на облако, после чего попросту удалить всю таблицу разделов и заново все разметить, не мучаясь. Не тут-то было, возникла вторая проблема: все папки с названием кириллицей просто сломались. Они есть на диске, они видны, но названия теперь выглядят как спецсимволы (рис. 2), а при попытке открыть папку получаем ошибку (рис. 3).

Единственная папка, лежавшая в корне раздела и имевшая название без русских букв — папка vipole, и вот она, что удивительно, полностью доступна, открывается, и все ее содержимое тоже можно просмотреть и открыть. Правда, в текстовых документах внутри этой папки также сломались все кириллические символы, нетронута только латиница (рис. 4).

Второго ЖД, чтобы спасти данные, у меня нет. Позвать какого-нибудь знакомого и слить данные ему в ноутбук или ЖД я тоже не могу. Облака, которые дают бесплатно 250 Гб свободного места мне неведомы, увы. Можно было бы плюнуть уже, все стереть и начать с нуля, но на разделе хранятся достаточно важные данные, потерю которых не восполнить.

Если у вас есть какие-то идеи и варианты решения - заранее спасибо.

Извините, что как идиот снимаю телефоном экран, сижу с liveusb, тут нет ни средств для скриншота, ни графического редактора.



Последнее исправление: Flagitio (всего исправлений: 3)

export LANG=en_US.UTF-8
или
export LANG=ru_RU.UTF-8
перед стартом иксов должны поменять картину.

В любом случае, неверное отображение кириллицы еще не повод бить тревогу, позже настроите правильную локаль и всё увидите.

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

Меня удивляет, что сбившаяся локаль так отражается на доступе к данным - данные лежат, но увидеть их нельзя.

Я работаю с флешки, с liveusb, перезагрузка - и все изменения откатятся. Установить систему, временно забив на проблему, я не могу, потому что мне надо сначала откусить часть места от home. А это сделать не выходит, как я описал в начале поста - ошибка.

Или вы предлагаете выполнить команды, потом остановить иксы и заново запустить? Будьте снисходитель, пожалуйста, я же жуткий нуб.

Flagitio
() автор топика
Ответ на: комментарий от bormant

Так, попробовал выполнить export LANG=en_US.UTF-8, а затем убил x-сервер. Странно, что меня не выбросило в терминал, а графическая оболочка просто перезапустилась. Никаких изменений не вижу.

Flagitio
() автор топика

Раз важные данные, загрузиться с другого liveusb, например, ubuntu? Тоже не вариант?

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

Переключиться в консоль Ctrl+Alt+Fn (или запустить эмулятор терминала), установить локаль, откусить раздел, поставить.

Для отображения помимо того, что нужно для нормальной работы, нужен еще и правильный шрифт.

Хотя, еще момент, в какой кодировке была та система, где сделаны файлы, UTF-8/KOI8-R/CP1251 ? Нативные ФС не поддерживают перекодировок на лету, чтобы видеть имена в правильной кодировке требуется совпадение кодировки.

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

Так, попробовал выполнить export LANG=en_US.UTF-8, а затем убил x-сервер. Странно, что меня не выбросило в терминал, а графическая оболочка просто перезапустилась. Никаких изменений не вижу.

Может не стоит ставить генту, если ты настолько нуб?

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

Не знаю как там в liveusb Gentoo, но ведь кеды могут быть без русской локали собраны в генту, не?

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

Я работаю с флешки, с liveusb, перезагрузка - и все изменения откатятся

Что за изменения?

Думаю, проще всего будет загрузиться с другого liveusb, заранее подумав о локализации (например, какой-нибудь из Ubuntu), скопировать файлы и продолжить установку.

Кстати, куда ты хочешь скопировать файлы?

я решил выкачать с home самые нужные данные, гигабайт 20, и залить их на облако
на облако
Облака, которые дают бесплатно 250 Гб свободного места мне неведомы, увы.

И ещё:

сижу с liveusb, тут нет ни средств для скриншота, ни графического редактора

Сейчас на liveusb нельзя ставить пакеты?

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

С другого liveusb - а я смогу создать его, работая из-под этого liveusb? У меня, повторю, всего одна флешка и один компьютер в распоряжении.

Залить 20 Гб - это не то же самое, что залить 250 Гб.

Flagitio
() автор топика
Ответ на: комментарий от bormant

откусить раздел

Я не уверен, что получится, скрин с ошибкой лежит в оп-посте. Но сейчас попробую, спасибо.

Система, где были созданы файлы - debian stretch обычный.

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

Вот шел ты мимо, взял, метнул говном, тебе легче стало? Подскажи что-то по теме, если можешь, а если нет - иди мимо.

Flagitio
() автор топика
Ответ на: комментарий от bormant

Переключиться в консоль Ctrl+Alt+Fn (или запустить эмулятор терминала), установить локаль, откусить раздел, поставить

переключился, установил, но раздел не откусывается, как и не откусывался, а папки все так же недоступны.

Выбор образа для liveusb был спонтанным - ставлю генту? Ну, значит ее и запишу. Кто мог предположить, что будут такие проблемы?

Есть ли возможность сейчас из-под этого liveusb записать на ту же флешку новый образ?

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

Пусть было и некорректно по форме, но может быть действительно, есть смысл прислушаться к содержанию?

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

Есть ли возможность сейчас из-под этого liveusb записать на ту же флешку новый образ?

Если он умеет жить в памяти, то можно. НО! Одна ошибка и ларчик захлопнется.

Поднимите старую систему на жестком диске, оттуда сделаете новую флешку.

Обычно для работы системы достаточно:
 — загрузчика (GRUB, LILO, ...)
 — ядра
 — системы инициализации (запускается ядром, задается параметром init=)
 — оболочки (shell)

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)

С другой стороны, что мешает дать команду, resize2fs руками, чтобы увидеть нормальный выхлоп о причине ошибки?

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

Вот! Я же не оскорбить хотел, а совершенно серьёзно предлагал задуматься над целесообразностью перехода на кривоватый красноглазый дистрибутив при наличии отсутствия элементарных познаний вроде принципов работы переменных окружения.

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

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

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

Было бы очень кстати. Отдай, если не жалко, вот почта 491rh7+9d44df2012pwc@sharklasers.com Тогда я сразу решу все проблемы, это будет замечательно.

Flagitio
() автор топика
Ответ на: комментарий от bormant

Извините, сразу не подумал об этом. Вот.

livecd gentoo # umount /dev/sda1

livecd gentoo # resize2fs /dev/sda1 300G

resize2fs 1.43.1 (08-Jun-2016)
Please run 'e2fsck -f /dev/sda1' first.

livecd gentoo # e2fsck -f /dev/sda1

e2fsck 1.43.1 (08-Jun-2016)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
home: 77006/29728768 files (2.3% non-contiguous),
65305994/118885120 blocks

livecd gentoo # resize2fs /dev/sda1 300G

resize2fs 1.43.1 (08-Jun-2016)
Resizing the filesystem on /dev/sda1 to 78643200 (4k) blocks.
Segmentation fault

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

Я так понимаю, человек может отдать облако в виде аккаунта. Естественно, если ему это облако без надобности, то я сперва сменю пароль и ящик, а потом залью данные. Сразу же переразмечу диск, выкачаю данные назад и, если хозяин хочет, верну ему все данные назад. Мне это облако нужно только для одной операции буквально на день.

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

Отправил. Единственное, что там ограничение на размер загружаемого файла (максимум - 2 гб), но в таком случае можно разделить архив с данными с помощью split на куски по 2 гб и залить их. Потом можно обратно склеить с помощью cat.

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

Душевное тебе спасибо, анон, это очень полезный подарок. Сейчас залью (если оно еще зальется, бог знает), и если все получится - тема закрыта.

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

Нет, нифига, не хотят заливаться мои битые папки. Хоят облако работает и я обязательно найду ему применение. Но текущая проблема все еще не решена. resize2fs, как видно из логов выше, сталкивается с ошибкой сегментации, что бы это не значило.

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

Читаю зарубежные форумы - люди советуют пробовать partedmagic вместо gparted, якобы первый может сработать. Скачал, хотя без второй флешки бог знает, как его использовать. Еще поизучал сходные темы - некоторые советуют изменить суперблок, взяв одну из копий (не главный, лежащий в начале диска). Сделал так:

mke2fs -n /dev/sda1
и затем
e2fsck -b какой-то_номер_блока /dev/sda9

Авось что-то изменится в лучшую сторону. Все еще жду ваших мудрых советов, друзья.

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

В самом деле, было выявлено два, как я понимаю, несоответствия, было предложен исправить - нажал Y. Теперь прогоняю вот так с интересным результатом:

livecd gentoo # e2fsck -c -c -p -v /dev/sda1
^C

Interrupted at block 754624

Interrupt caught, cleaning up
home: Updating bad block inode.

home: ***** FILE SYSTEM WAS MODIFIED *****

Кроме того, в одном из мануалов по генту я нашел такой вот пункт: https://lisakov.com/blog/gentoo-for-goofy/#kirillica-v-virtualnyh-konsolyah Там рассказывается о том, как установить шрифты + сменить локаль, и что-то про поддержку юникода написано. Может быть, это мне и нужно? Могу ли я выполнять эти команды?

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

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

Вывод такой:

livecd gentoo # e2fsck -c -c -p -v /dev/sda1
home: Updating bad block inode.
77006 inodes used (0.26%, out of 29728768)
1762 non-contiguous files (2.3%)
46 non-contiguous directories (0.1%)
# of inodes with ind/dind/tind blocks: 0/0/0
Extent depth histogram: 76491/253/11
65305994 blocks used (54.93%, out of 118885120)
0 bad
blocks
25 large files

72535 regular files
4220 directories
0 character device files
0 block device files
1 fifo
8 links
240 symbolic links (240 fast symbolic links)
1 socket
------------
77005 files

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

Проверка успешно завершилась, можно изменять размер.
Учтите, что размер хранится как внутри ФС, так и в таблице разделов. parted правит оба, resize2fs, если правильно путаю, только внутри ФС.

Проблема изначально оказалась в не совсем работоспособном инструменте.

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

Увы! Parted все так же выдает ошибку. Вот логи: http://fracton.rgho.st/6NbLQl6zb Или вы имели в виду, что следует пользоваться не parted, а resize2fs и изменить размер раздела из терминала? Сейчас попытаюсь (хотя у меня явно не хватает консольного опыта, проще с гуем). А еще, быть может, надо было перезагрузить систему, чтобы исправления вошли в силу?

Flagitio
() автор топика
Ответ на: комментарий от ass

Предлагаете установить назад тот дебиан, который был раньше? Это невозможно в моих условиях, увы. Как видите, проблема двойная и особо неприятная: и кодировки поломались (поэтому не могу выполнять операции с файлами) и файловая система как-то козлит (поэтому не могу переразметить диск и поставить новую систему, а уже потом ковыряться с кодировкой).

Flagitio
() автор топика
Ответ на: комментарий от ass

Вам известны нативные для Linux ФС, поддерживающие перекодировку? Для ext?, raiserfs, xfs, jfs перекодировка не поддерживается, параметры перекодировки вроде iocharset работают только для инородных систем (fat, vfat, ntfs, smbfs, cifs, ...).

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

Это лишнее напоминание про то, что ФС с её внутренними структурами сама по себе, таблица разделов — сама по себе.

Озаботьтесь ещё одной-другой флешкой, поставьте туда sysresccd или Slackware Live, сделайте необходимые операции оттуда.

Но лучше сперва настроить загрузку той системы, что уже есть на HDD, это далеко не rocket science (космические технологии).

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

На штатной системе на HDD никто не помешает вам залогиниться рутом, отмонтировать отдельный /home, изменить его размер...
Для всего этого не нужно никаких дополнительных живых систем.

PS. До сих пор не могу понять, что мешает вам загрузить ту систему, что была квас установлена ранее на HDD.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

Просто у меня очень мало неразмеченного пространства на диске - около 10 Гб. Именно это и вынуждает меня так страдать в попытке отрезать часть места от слишком большого home. Для генты делать root объемом 10 Гб - ну не знаю даже. Хорошо, я могу установить даже на такой маленький root какую-нибудь систему, чисто на время, чтобы разобраться с проблемами. Я могу рискнуть, стереть имеющуюся флешку, покуда live-gentoo в памяти, и записать какой-нибудь установочный образ убунты, допустим. Но если что-то выйдет не так, то я останусь вообще с кирпичом вместо ПК.

Озаботьтесь ещё одной-другой флешкой

Нет. Если бы я мог - давно бы так и поступил, а еще лучше, если б такая возможность была, купил бы просто новый винт на 1 Тб, убив сразу всех зайцев - и диск уже старенький, и 500 Гб - маловато, и вообще. Но для меня этот вариант неактуален, совсем никак, нет пока такой возможности.

Может быть, чтобы не рисковать с флешкой, я могу установить систему прямо из-под liveusb? Я слышал о debootstrap (хотя дела с ним не имел).

Flagitio
() автор топика
Ответ на: комментарий от bormant

До сих пор не могу понять, что мешает вам загрузить ту систему, что была квас установлена ранее на HDD

Я, наверное, какой-то особенно глупый и криворукий, но я не понимаю, как я могу загрузить ту систему, если boot и root, где она лежала, давно уничтожены и сровнены с ландшафтом, даже тип загрузочной записи изменен. Эти разделы давно удалены, поверх пустого места создавались новые разделы, не очень удачные, я их снова удалял - теперь там просто пустое неразмеченное место. Можно было бы попробовать восстановить эти стертые разделы с дебианом, наверное, но я не уверен, что система загрузится.

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

Тю, выходит у вас вполне есть место для старта и манёвра.
Ну поставьте без подключения своего /home в 10 Гб пустого места как в корень ту же базовую генту.
Или Slackware. Как сделать её установщик на жестком диске (чтоб не рисковать сломать последнюю флешку) писал там: http://docs.slackware.com/howtos:slackware_admin:booting_install_from_hdd Раз GPT, нужно с учетом этого скорректировать загрузку.
Да хоть черта лысого, 10 Гб вполне достаточно для чего-то вполне работоспособного, откуда потом можно порулить системой.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)
Ответ на: комментарий от bormant

А я руководствовался парой мануалов с, страшно подумать, двачей. Хорошо, сейчас буду ковыряться.

Flagitio
() автор топика

Можно LVM попробовать, чтобы потом легче разделами рулить. И корень можно будет увеличить на лету.

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

Никогда с этим не имел дела, но слышал - это, вроде как, надстройка над ФС некая. Не уверен, что от нее есть смысл для систем с одним накопителем - если все разделы у меня на 1 ЖД, то увеличивать будет нечего.

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

Систему базовую поставил, все времени не было свободного, работает, но X поставить нельзя - мало места в корне. Ничего страшного.

Теперь я взялся за основную задачу - изменить размер раздела. В итоге просто все поломал, детали тут: Уронил ext4, потерялся суперблок

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