Автор Тема: initramfs  (Прочитано 318 раз)

Оффлайн range

initramfs
« : Май 22, 2019, 03:48:27 pm »
подскажите пожалуйста как выкинуть эту херь, и как грузиться без нее?

пытаюсь изменить файлвую систему.
есть sd карточка на которую буду копировать распакованный образ.  ее я отформатировал в btrfs.  в u-boot включил подддержку этой файловой системы.
dd if=/dev/zero  of=/dev/sdx(sd карточка моя)# обнуляю

создаю раздел с помощью fdisk

и записываю на нее загрзучик

dd if=u-boot-sunxi50.bin of=/dev/sdx(sdкарточка) bs=8k seek=1

форматирую
mkfs.btrfs  /dev/sdx1(sdкарточка)
mkdir readdisk # сюда я примонтирую sd карточку отформатированную в btrfs для того чтобы в нее скопировать все из образа, который я распечатаю. то есть я переноту armbian на другую файловую систему.

kpartx -av Armbian-5.75-debian-orangepi_win.img

cd /dev/mapper
ls
loop01p
mkdir armb
mount /dev/loop01p armb
тут я примонтировал образ .img чтобы достать из него все что нужно . теперь в директории armb доступны boot , sbin, root, usr.  ну вобщем все .
pwd
armb


сp -r -R -d -p *   /root/readdisk/ 
все директории перекопировались на новую файловую систему.  загрзучик уже записан.
сhroot /readdisk
cd /usr/sbin
./update-initramfs -v -c -k  обновил initramfs
cd /etc
nano fstab
поменял uuid
стартую , пишет что модули не нейдены. 


как выкинуть этот initramfs чтобы без него стартануть на новой файловой системе?


ну этот то вопрос не выходит за рамки форума. дайте ответ

Оффлайн range

Re: initramfs
« Ответ #1 : Май 23, 2019, 10:09:03 pm »
мы можем поменять файловую систему вообще не трогая initramfs прочие ненужные вещи.

ну вот вдруг вы захотели поменять на orange pi файловую систему ...    нет проблем.  тут есть руководство как собрать u-boot. это очень просто.  Люди уже разжевали все моменты по сборке загрузчика.  но если вдруг не хочется искать , то
mkdir build
cd build

git clone --depth 1 --branch v2019.04 https://github.com/u-boot/u-boot.git
git clone --depth 1 --branch allwinner https://github.com/apritzel/arm-trusted-firmware.git

# env загрузчика можно изменить в include/config_distro_bootcmd.h в конце строка '#define BOOTENV \'

# Данный параметр указывается всегда, при сборке ядра уж точно, а про юбут уже не помню...
export ARCH=arm64

# Данный параметр указывается если архитектура системы отличается от той под которую собираете ну или у вас компилер где то завалялся...
export CROSS_COMPILE=/path/to/cross/compiler/bin/aarch64-linux-gnu-
# или export CROSS_COMPILE=aarch64-linux-gnu-

make -C arm-trusted-firmware clean
make -C arm-trusted-firmware PLAT=sun50iw1p1 DEBUG=0 bl31 -j2
# Если нормально собралось должен появится файл bl31.bin в папке arm-trusted-firmware/build/<PLAT>/<debug|release>
# если DEBUG=1 папка debug, если 0 папка release
# потом нужно его просто закинуть в папку юбута
cp arm-trusted-firmware/build/sun50iw1p1/release/bl31.bin u-boot/
# или при компиляции юбута указать параметр make -C u-boot BL31=/full/path/to/arm-trusted-firmware/build/sun50iw1p1/release/bl31.bin -j2
# или export BL31=/full/path/to/arm-trusted-firmware/build/sun50iw1p1/release/bl31.bin

make -C u-boot clean
make -C u-boot distclean
make -C u-boot orangepi_win_defconfig
make menuconfig
ищем файловые системы и выбираем btrfs к примеру
сохраняем и выходим.

собираем
make -C u-boot -j2
нужна еще одна sd карточка на которую мы перенесем на Armbian ( ну это к примеру) , только уже на другую файловую систему.
cоздаем с помощью fdisk раздел.  ну желательно один чтобы мешьше было ошибок в создании.  нажмите 'n'  - это создать новый , после 'p' -это будет тип партиции, то есть основной, по умолчанию :2048 , как раз в начале останется мегабайт сободного места, для u-boot и файловой системы. после жму 'w' -значит записать на диск все что  создали...
mkfs.ext2 /dev/sdx     или mkfs.btrfs  для btrfs возможно нужно будет установить дополнительный пакет.
записываем наш скомпилированный загрузчик.  для  orange pi win и схожих по железу одноплатников
dd if=boot-sunxi50.bin of=/dev/sdx bs=8k seek=1
sdx -это ваша карточка. можно посмотреть lsblk.
seek=1 значит на карточке на которую будет писать отступит от начала 8K.
все имеем sd карточку с записанным загрузчиком и разделом отформатированным в нужную нам файловую систему.
теперь нам надо взять образ системы разобрать его и скопиравать все на sd карточку.
качаем к примеру Armbian_5.75_debian-orangepi_win.img , да что хотите,  можно даже Gentoo....
устанавливаем kpartx он нам позволит изъять все нужное нам из образа.img  можно просто записать образ на флешку, причем любую, после примонтировать ее и достать уже все из директории к которой примонтировали флешку.
kpartx -a -v Armbian_5.75_debian-orangepi_win.img
все теперь заходим в /dev/mapper и монтируем loop какой именно выведет kpartx , например loop1p я вижу, воздаю директорию
[coode]
mkdir armclone
mount /dev/loop1p
все теперь в amclone лежит все что нам нужно.
захожу туда
[code]
cd armclone
и копирую от сюда все директории на мою sd карточу, на ту где записан загрузчик и новая файловая система создана...
нужно также создать директорию с котрой свяжем sd карточу на которую будет все переносить.
то есть у нас две директории, в одной у нас разобранный образ Armbian_5.75_debian-orangepi_win.img , другая нам нужна для того чтобы это все закинуть на нашу sd карточку.  ее мы примонтируем к ней.
mkdir sddir
lsblk
mount /dev/sdx
cp -p -R -d -a * /root/sddir/ у всех путь может быть разный.
[code]
все , еще пару файлов подправить и можно стартовать.
теперь надо попасть в sddir
найти файлы "fstab' и armbianEvn.txt.

после того как изменили файловую систему поменялся и uuid.  вот его и надо подправить.
[code]
blkid
видим наш новый uuid
nano fstab
прописываем его сюда
и
сюда
nano armbianEnv.txt

ext4 что была там, мы также заменяем на нашу новую.

почему никто не мог подсказать я не знаю.