Вы здесь

Корень фс в файле-образе - реально ли это?

Здравствуйте.
Есть инсталлированная Gentoo amd64. Задолбал iowaitbug, плюс не могу настроить сканер (он просто вырубается при попытке сканить), плюс иксы жрут 100-256 метров памяти. Хочу поставить x86, но нет желания экспериментировать с разметкой диска. На диске 3 раздела -

sda1             Основной Linux своп / Solaris               2048,10                         
sda2 Загрузочный Основной Linux ext3           [gentoo-root] 26847,32
sda3             Основной Linux ext3           [home]        471209,85

В sda3 есть место для создания образа, хочу создать его (размером 26847,32 метра), смонтировать его и ставить на него, затем поэкспериментировать с x86, если понравится - вкачать через dd на sda2 и радоваться жизни, если нет - просто удалить его и жить дальше. Можно конечно ставить непосредственно в sda3, но уж больно криво это будет смотреться, да и риск имхо выше.

Собственно вопрос - как обьяснить ядру что корень фс в образе на другом разделе?

хм... а как вы его монтировать собрались при загрузке системы? не могу представить. не проще ли отдельный раздел на винте сделать и на нем "тестить" ?
P.S.: можно виртуальную машину замутить, но без аппаратной поддержки (со стороны процессора) будет уныло. на x86 другие заморчки.

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Виртуалка ничего не даст - уж больно косяки специфические. Сканер был настроен под Кубунтой 9.04 x86, работал лечше чем под альтернативной ос (единственное что можно потестить под виртуалкой, ибо usb), iowaitbug по идее только на amd64, а ксорг жрёт память с дровами nvidia и nouveau, которые под виртуалкой не заводятся.
Монтировать - есть идея что через initramfs смонтировать sda3 куда нить, затем смонтировать образ поверх рута, а затем снова смонтировать sda3 уже в /home/ (вот только безопасно ли это будет?). Правда в initramfs-строении я пока не силён, но думаю это не слишком сложно. Просто мне казалось что должно быть уже существующее решение...

Это вполне реально сделать (то есть, сам это делал).
Очень кратко выглядит таким образом:
Для этого понадобиться genkernel, на initrd есть скрипт загрузки на bash. Там можно реализовать почти всё что угодно.
Далее, как я понимаю, система будет смонтирована файлом через loop с физического раздела донора. В fstab надо указать что корень монтируется с loop0.

Разобрал initramfs от genkernel, но вот обратно собрать нормально так и не смог - система с новым initramfs не загрузилась. Как правильно собирать его?

У меня работали следующие способы

распаковка

zcat initramfs | cpio -idv

запаковка

find * | cpio -o --quiet -H newc | gzip -9 > initramfs

Arago написал:
iowaitbug по идее только на amd64

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

o_O
Это как? Значит если ктото решил поюзать диск, то пусть весь мир подождёт? Ну не должно же так быть...

там какието политики кэширования и чегото с дисками, которые оптимальные для серверов, но не для рабочих станций, хотя всё это настраивается, в последнее время там высокая активность, в этом баге https://bugzilla.kernel.org/show_bug.cgi?id=12309

Я думаю реально, но смысла делать это нет, т.к. есть более простые варианты, например использовать sda3 в качестве корня.

Я же рассказал почему не хочу так делать. Ещё, возможно реализация такой загрузки ещё пригодится мне в дальнейшем.

Упс, сорри, когда первый раз читал не увидел.
Какой риск? Почему криво?
Весь вопрос в цели:
1) Потесить 32битную систему - корень в sda3 - просто, быстро и надежно
2) Загрузиться с образа, на винче с целью дальнейшего использования такой схемы - ответ тоже очевиден, но требует куда больше времени

_SerEga_ написал:
Я думаю реально, но смысла делать это нет, т.к. есть более простые варианты, например использовать sda3 в качестве корня.

Тогда уж лучше sda1 ;) - а своп - временно на файл.
Но если очень хочется - можно и с луп-девайсом. Смотрите в сторону создания ЛайвЦД...