
며칠 전에 Linux로 전환한 이후로 컴퓨터를 구성하려고 합니다. 마지막으로, 16GB DDR2 Ram을 갖춘 물리적 RAM 드라이브가 있습니다. 이 장치는 실제 물리적 SATA 하드 드라이브로 마운트됩니다. 일반적으로 이는 외부 전원 공급 장치에 연결되어 다음에 컴퓨터를 시작할 때까지 정보를 유지합니다.
이제는 에너지를 절약하기 위해 이것을 내부 PSU에 연결하고 싶습니다. 머신이 부팅되면 RAM 드라이브는 비어 있고 포맷되지 않은 상태입니다. fstab이 발생하기 전에 부팅 프로세스 중에 어떻게 포맷할 수 있나요?
저는 ElementaryOS를 사용하고 있습니다. 시작 스크립트가 있는 위치가 있다는 것을 알고 있지만 "auto-partition-Hyperdrive" 스크립트를 직접 작성하는 방법은 모르겠습니다. 이러한 스크립트는 /tmp를 RAM 드라이브에 마운트할 수 있도록 fstab이 발생하기 전 어딘가에 배치되어야 합니다.
누구든지 나를 도와줄 수 있나요?
베스트 마틴
답변1
해결책을 찾는데 꽤 시간이 걸렸습니다. 이것이 적절하고 편리한 방법인지는 확실하지 않지만 저에게는 효과적입니다.
다음 스크립트는 자동화된 형식화 및 마운트 작업을 수행합니다.
#!/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' 사용자와 재부팅할 때마다 cron에게 루트로 스크립트를 실행하도록 지시하는 '@reboot'입니다. "TaTahha" 그리고 이것은 나에게 잘 작동합니다.