경고하다

경고하다

시스템이 시작될 때마다 "/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및 재시작은 약간 위험해 보일 수 있습니다. 문제가 발생하면 시스템이 부팅되지 않을 수 있습니다.

관련 정보