shaman |
|
Темы:
26
Сообщения:
379
Участник с: 13 декабря 2009
|
а ядро-то рамдиск поддерживает? пересобрать его возможно придется. или же в инитрд в модули добавить нужный. помоему проще в инитрд скрипты изменить, в грабе ничего не придется добавлять. изменить /lib/initcpio/init а потом просто mkinitcpio сделать |
SmiGes |
|
Темы:
167
Сообщения:
845
Участник с: 04 августа 2009
|
а что примерно в скриптах отредачить надо? |
SmiGes |
|
Темы:
167
Сообщения:
845
Участник с: 04 августа 2009
|
собрал своё ядро, в ядро жёстко вкомпилил поддержку ext2, ramdisk тож, но история почти таже. Так кто мне поможет? уже 2 с лишним недели лайф усб не получается |
shaman |
|
Темы:
26
Сообщения:
379
Участник с: 13 декабря 2009
|
давай я тебе свой скрипт дам, ты глянешь как я сделал, и попробуешь еще раз? у меня ищется на всех носителях root.squashfs и если находится, монтируется. find_root находится в init_functions: find_root(){ echo "Search root filesystem..." path= type= stat_path=0 stat_type=0 stat=0 mkdir /mnt for i in `blkid /dev/[hs][dr]* /dev/mmc*` do if [ "${i:0:5}" = "/dev/" ] then path="$i" echo "Find $path" stat_path=1 fi if [ "${i:0:4}" = "TYPE" ] then type="$i" echo "Find fs $type" stat_type=1 fi if [[ $stat_path -eq 1 ]] then if [[ $stat_type -eq 1 ]] then echo "Parsing strings" path="$(echo "$path" | cut -d '=' -f2 | sed -e 's/://g')" type="$(echo "$type" | cut -d '=' -f2 | sed -e 's/://g' | sed -e 's/"//g')" stat_path=0 stat_type=0 echo "Mounting $path with $type" mount -t "$type" "$path" /mnt if [ -e "/mnt/root.squashfs" ] then echo "Root found in $path" stat=1 break fi umount /mnt fi fi done umount /mnt if [[ $stat -ne 1 ]] then echo "Root not found!" exit 0 fi mount -t "$type" "$path" /mnt echo "Booting from $path" mkdir /overlay mount -t tmpfs none /overlay mount -t squashfs "/mnt/root.squashfs" "$1" -o loop mount -t aufs -o dirs=/overlay=rw:"$1"=ro none "$1" } #mount_handler="default_mount_handler" mount_handler="find_root" |
SmiGes |
|
Темы:
167
Сообщения:
845
Участник с: 04 августа 2009
|
так сделал так. взял свой инитрд скинул в пустой каталог, перешёл в него, далее запустил команду gunzip initrd.gz , потом sudo bsdtar -x -f initrd, содержимое распаковалось, взял твой init_functions , в файле init подправил как ты и сказал, потом sudo bsdtar -c –format cpio -z -f ~/initrd * , архив создался, скинул на флешку в каталог /boot , в корне флешки сквашфс образ переименовал в root-image.squashfs , в /boot/grub/menu.lst оставил только kernel /boot/vmlinuz vga=795 initrd=/boot/initrd-arch ну вот и всё. попытался бутнуться с флешки, кернел паник махом произошёл |
shaman |
|
Темы:
26
Сообщения:
379
Участник с: 13 декабря 2009
|
у меня тоже паника была когда я так паковал образ, поэтому я менял /lib/initcpio/init и /lib/initcpio/init_functions а потом просто mkinitcpio |
SmiGes |
|
Темы:
167
Сообщения:
845
Участник с: 04 августа 2009
|
сделал, но тоже вот ( см.скрин ) |
shaman |
|
Темы:
26
Сообщения:
379
Участник с: 13 декабря 2009
|
что-то не то, я не вижу выводов своего скрипта. ты же mkinitcpio -g <name> делал? |
SmiGes |
|
Темы:
167
Сообщения:
845
Участник с: 04 августа 2009
|
mkinitcpio -k 2.6.32.2-ArchLinux -g /boot/initrd-arch |
shaman |
|
Темы:
26
Сообщения:
379
Участник с: 13 декабря 2009
|
ты в init_functions добавил функцию? или заменил файл своим? в конфиге mkinitcpio убери autodetect он подгоняет образ под твою систему, в модулес воткни aufs и loop. если все правильно сделал, то мой скрипт как минимум напишет где пытается искать корень. пока что я не вижу его выводов. |