시스템이 시작될 때마다 "/etc/fstab" 파일을 확인해야 합니다.
# UNCONFIGURED FSTAB FOR BASE SYSTEM
#/dev/disk/by-partlabel/userdata /userdata ext4 defaults 0 2
#/dev/disk/by-partlabel/oem /oem ext4 defaults 0 2
다음 줄의 경우:
- /dev/disk/by-partlabel/userdata
- /dev/disk/by-partlabel/oem
"#"(주석)으로 시작하여 해당 주석을 삭제하고 시스템을 다시 시작합니다.
두 번째 줄부터 시작하는 각 줄의 "#"을 제거하는 간단한 일괄 처리를 만들었습니다.
#!/bin/bash
# Check if the WiFi driver will be loaded
echo -e "\n\r##############################"
echo -e "# Start reading /etc/fstab #"
echo -e "##############################\n\r"
cat /etc/fstab
# Backup the original file
cp /etc/fstab /etc/fstab.bak
# Remove '#' starting from the second line
sed -i '2,3s/#//' $fstabConfigPath
나중에 /etc/fstab 파일에 다른 줄이 포함될 수 있으므로 지정된 줄의 "#"만 제거하도록 스크립트를 개선하고 싶습니다.
도와주셔서 감사합니다, 페데리코
답변1
sed
번호가 매겨진 행을 가리키는 것이 아니라 패턴과 일치하는 행에서만 작업을 수행하도록 요구해야 합니다. 다음 방법으로 이를 수행할 수 있습니다.
sed -ri.bak '/^#[/]dev[/]disk[/]by-partlabel[/](userdata|oem)( |\t)/ s/^#//' /etc/fstab
파일을 복사하는 대신 sed -i
원하는 확장자를 지정하여 파일을 생성할 수 있습니다.
다시 시작하기 전에 파일이 실제로 수정되었는지 확인하세요.
diff -q /etc/fstab /etc/fstab.bak || reboot
경고하다
자동 편집 /etc/fstab
및 재시작은 약간 위험해 보일 수 있습니다. 문제가 발생하면 시스템이 부팅되지 않을 수 있습니다.