LINUX.ORG.RU

Смещение по секторам зашифрованного раздела

 , , ,


0

2

Доброго времени, беда следующая Мой жесткий диск имеет следующую структуру:

- /dev/sda1, 100M, boot-раздел

- /dev/sda2, ~250G, зашифрованный LUKSом раздел

Поставив второй дистрибутив линукса, я понял, что 100M на boot-разделе не хватит и решил его увеличить. С горем пополам я отпилил кусок в 4G от большого шифрованного булыжника с помощью fdisk. Но беда в том, что эти 4G находится в конце диска и припилить их к boot-разделу не представляется мне возможным.

Вопрос: каким образом пододвинуть эту дуру - /dev/sda2 на 4 гигабайта вправо? Наверняка же возможно... (может каким-нибудь побайтовым копированием секторов)?

С горем пополам я отпилил кусок в 4G от большого шифрованного булыжника с помощью fdisk.

resizexxxfs перед этим, надеюсь, сделали?

Вопрос: каким образом пододвинуть эту дуру - /dev/sda2 на 4 гигабайта вправо?

parted и основанные на libparted программы, вроде, умеют двигать произвольные разделы.

AITap ★★★★★ ()

А зачем его двигать? Пусть будет boot раздел в конце. А эти 100 Мбайт пусть просто разделом без особой функции. Вроде, сейчас нет органичений на размещение от начала диска boot-раздела.

mky ★★★★★ ()

Что ж это за дистры такие, которым 100мб бута мало...

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

gparted

Gparted отказывается двигать

resizexxxfs перед этим, надеюсь, сделали?

Нет, не сделал. Отпилил, запустил ОС - работает. Ну, думаю, значит все правильно сделал. Нет?

Пусть будет boot раздел в конце.

Попробую parted. Оставлю этот вариант, если совсем ничего не получится.

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

Самые обычные, в нормальном режиме я думаю им и хватит 100 мб. Но у меня сейчас там небольшая кашица из ядер, рам-дисков и т.д. Решил увеличить, думал все просто, а не тут-то было.. ну а дальше уже спортивный интерес так сказать. Дело принципа.

comm1x ()

После того как урезал 4Gb, проверил с помощью fsck.ext4 все разделы. Программа отобразила, что все корректно, достаточно ли этого, чтобы понять, что я урезал диск без потерь?

С помощью parted не получается переместить в связи с тем, что программа не может установить файловую систему диска. И вправду, какая может быть ФС, если ее там нет. Пробовал:

parted /dev/sda2

parted /dev/mapper/crypted

parted /dev/mapper/local-{root, home, swap, btck} вообще глупо перемещать. Ну они и так не перемещаются, т.к. занимают 100% своего допустимого дискового пространства.

Вопрос все тот же: как переместить раздел по секторам вправо?

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

Что-то мне склероз подсказывает, что gparted - это всего лишь GNOME-интерфейс к parted. Так что неудивительно, что parted тоже отказался двигать, когда gparted не справился.

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

Нет, не сделал. Отпилил, запустил ОС - работает. Ну, думаю, значит все правильно сделал. Нет?

Бэкапь все оставшиеся данные с раздела, запускай fsck. А лучше сразу mkfs.

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

Вы ответили на мой комментарий, но не на мой вопрос. Повторю ещё раз, зачем вам двигать 4 Гб в начало диска?

Проверка файловой системы шла с ключиком "-f" ? Для уверености можно посмотреть вывод «tune2fs -l /dev/...» и убедится, что «Block count» совпадает с размером дискового устройства, на котором находится ФС.

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

Зачем двигать 246 Гб в конец диска?

Все аккуратно упорядочено, красиво. На диске порядок. Да, я понимаю, что проблемы можно избежать, переместив boot-раздел в конец диска, но я не хочу избегать. Есть проблема и ее хочется решить, именно решить, а не убегать от нее, или придумывать костыли, хотя в данном случае это очень достойные и качественные костыли.. но костыли. Хотя я уже и разобрался с операционками, и они у меня теперь хорошо живут и на 100MB бут-раздела, вопрос все равно остается для меня открытым.

В общем, ответ такой: Зачем двигать 246 Гб в конец диска? Спортивный интерес.

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

parted и основанные на libparted программы, вроде, умеют двигать произвольные разделы.

parted откажется двигать раздел, если исходный и конечный разделы пересекаются.

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

Это верно. Но в таком случае таблицу разделов можно считать сломанной, разве нет?

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

Но в таком случае таблицу разделов можно считать сломанной, разве нет?

Не совсем. Под конечным разделом я имел в виду конечное положение раздела.

Допустим, на диске один раздел в самом начале, размером в 10 гигов. Если parted'у сказать: «подвинь мне раздел на 12 гигов в сторону конца диска», он это сделает, так как [0, 10] не пересекается с [12, 22]. А если попросить подвинуть на 9, откажется, так как [0, 10] пересекается с [9, 19].

Gparted подвинет.

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

и тем не менее gparted не двигает шифррванные разделы , т.к. не может определить его файловую систему

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

gparted не двигает и lvm2, хотя отлично определяет его. Без изменения размера двигать относительно безопасно, но, как я понял из отрывочных сведений архивов рассылки, это не реализовано, потому что «двигать разделы — это не lvm-way».

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

Если я не ошибаюсь, это потому что разделы lvm допускают фрагментированность. Т.е. нет как такового одного раздела от сектора и до сектора. Есть от сектора до сектора PV, в котором каша из LG, LV. В таком случае логично двигать весь PV. Но не зная файловой системы (а мы ее и не знаем) пододвинуть просто так не получится. Есть только один выход - это копирование (по частям (побайтное), или полное дублирование) с дальнейшим удалением очищением исходных секторов.

Вроде все просто (как мне кажется), но странно, что всякие parted не могут такое реализовать. Может не все так просто...

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

В таком случае логично двигать весь PV.

Ну да, я говорил именно о PV. И его теоретически можно двигать куда угодно, там нет привязки к абсолютной позиции на диске. Но Gparted всё равно отказывается. А внутри LVM2 вообще вживую можно разделы двигать.

Была у меня мысль поправить код Gparted, но я не осилил.

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

Возрадуйся

Была у меня мысль поправить код Gparted, но я не осилил.

А сейчас стало легче, они добавили детектирование LUKS и LVM2 PV. Решение — заставить GParted принять LUKS-раздел за раздел с exfat. Его можно двигать и копировать. Бонус: возможность двигать PV от LVM2.

diff -ur gparted-0.12.1/src/GParted_Core.cc gparted-0.12.1-hack/src/GParted_Core.cc
--- gparted-0.12.1/src/GParted_Core.cc	2012-03-28 01:03:06.000000000 +0400
+++ gparted-0.12.1-hack/src/GParted_Core.cc	2012-10-11 20:27:48.799403558 +0400
@@ -1132,7 +1132,7 @@
 			temp = _( "Linux Unified Key Setup encryption is not yet supported." ) ;
 			temp += "\n" ;
 			partition_temp .messages .push_back( temp ) ;
-			return GParted::FS_LUKS ;
+			return GParted::FS_EXFAT ;
 		}
 	}
 
diff -ur gparted-0.12.1/src/lvm2_pv.cc gparted-0.12.1-hack/src/lvm2_pv.cc
--- gparted-0.12.1/src/lvm2_pv.cc	2012-02-24 02:02:15.000000000 +0400
+++ gparted-0.12.1-hack/src/lvm2_pv.cc	2012-10-11 20:01:23.699355836 +0400
@@ -32,6 +32,7 @@
 	{
 		fs .read = GParted::FS::EXTERNAL ;
 	}
+	fs .move = GParted::FS::GPARTED ;
 
 	return fs ;
 }
i-rinat ★★★★★ ()
Ответ на: Возрадуйся от i-rinat

Чудесно. Оказывается, вчера вышла версия 0.14.0 GParted, которая уже умеет LVM2.

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

Отличная новость. Уже скачиваю :)

Интересно, как он посмотрит на то, что мой PV зашифрован luksом...

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

Ты бы отписался, что ли. А то получается, зря я исходники ковырял и патч оформлял.

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

В воскресенье вечером проверю и отпишу, ща разбираюсь с загрузкой операционки. Какой-то баг с plymouth.

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