так как я перешел на Linux пару дней назад, я пытаюсь настроить свою машину. Последнее, что у меня есть: у меня есть физическая RAM-память с 16 ГБ оперативной памяти DDR2. Это устройство монтируется как настоящий физический жесткий диск SATA. Обычно это связано с внешним источником питания, так что он будет хранить информацию до следующего запуска компьютера.

Теперь я люблю подключать его к внутреннему блоку питания, чтобы сэкономить энергию. Если машина загружается, то диск ОЗУ пуст и не отформатирован. Как я могу отформатировать это во время процесса загрузки, прежде чем произойдет fstab?

Я использую элементарную ОС. Я знаю, что есть места с загрузочными скриптами, но я не знаю, как написать свой собственный скрипт "auto-partition-Hyperdrive". Такой сценарий должен быть размещен где-то перед fstab, чтобы я мог монтировать /tmp на диск RAM.

Кто-нибудь может мне помочь, пожалуйста?

Лучший Мартин

1 ответ1

0

Потребовалось много времени, чтобы найти решение. Я не уверен, что это правильный и удобный способ сделать это, но он работает для меня.

Следующий скрипт выполнит автоматическое форматирование и монтирование:

#!/bin/bash

# search the device name 'ANS9010_22222222' and construct the path to it
DEV='/dev/'$( lsblk -n -o name,MODEL | grep ANS | cut -f 1 -d ' ' )

echo $DEV # this schould give something like /dev/sda

# This is now specific to the device
# set the disc label
parted -s $DEV mklabel msdos

# make the partition
parted -s $DEV unit kB mkpart primary 34 100%

# now we have to work with the 1st partition e.g. /dev/sda1
# so we must generate a $DEVP variable
# finally initialize the filesystem and give it a name
DEVP=$DEV'1'
mkfs.ext3 -L HYPERDRIVE $DEVP

# mount it via a 3 way change of dirs
echo '+++ make-dirs +++'
# make a temporary dir for the hyperdrive and mount it to that
mkdir /tmp_hyp
echo '+++ mount +++'
mount /dev/sda1 /tmp_hyp
# move everything to /tmp_hyp
echo '+++ move +++'
mv -f /tmp/* /tmp_hyp

# unmount, clean and remount as /tmp
echo '+++ umount +++'
umount /tmp_hyp
rmdir /tmp_hyp

echo '+++ remount /tmp +++'
mount -t ext3 -o defaults $DEVP /tmp

# !! very important !! change permissions to tms's defaults
chmod 0777 /tmp

Имея это, мы должны добиться, чтобы этот скрипт выполнялся во время загрузки. Поскольку метод через rc.locale все еще сложен, добавление строки в '/etc/crontab' решило это:

# m h dom mon dow user  command
... ... ... ... ... ... ...
@reboot     root    /usr/local/etc/auto-format-hyperdrive.sh

Здесь важны пользователь root и @reboot, который говорит cron выполнять скрипт как root при каждой перезагрузке. "ТаТахха", и это прекрасно работает для меня.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .