읽기전용 디렉토리를 쓰기가능하게 mount하는 방법
yopy3500을 사용하고 있습니다.
nate 사이트나 700 벨소리 서비스를 이용한 mp3 벨소리를 사용하는게 아니고, 제가 원하는 음악으로 바꾸고싶어서 그러는데요..
(아이팩이나 기타 다른 pda 폰들도 다들 편법이 존재하죠. 하물며 리눅스인데...)
역시나 쉽-_-게 쓰게는 안되어있군요..
파일을 복사하면 write-protected 되어있어서 파일을 쓰지못한다는 에러가 납니다.
우선 설정 파일들 먼저 보면요...
# /etc/fstab 내용입니다.
/dev/mtdblock2 / cramfs ro 1 1
/dev/mtdblock3 /nate cramfs ro 1 2
/dev/mtdblock4 /flash jffs2 defaults 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
/dev/mtdblock3라는 장치가 /nate 디렉토리에 읽기 전용으로 마운트 되어있구요.
여기서 ro를 rw로 변경하고 리부팅하면... 원래데로 ro로 돌아와있습니다.
리부팅안하고 mount -a 하고 mount로 확인해봐도 read-only상태로 있습니다.
힌트가 loop 라고합니다.(개인적인 피해가갈수도 있어서 어디서 누가 말했다고는 밝히기가-_-, 모 요피쓰는사람들은 다 알겠지만-_-)
그래서 loopback device에 대해서 찾아봤습니다.
(네트웍에서 말하는 loopback 즉 127.0.0.1은 제외했습니다.)
mount로 가닥을 잡았습니다.
몇가지 용도로 쓰이더군요.
- 이미지 파일을 디렉토리에 마운트시켜 사용하기.
- 램디스크에 사용
- 암호화관련 파일시스템 사용시.
- 새로운 파일시스템 테스트
- ...
이러한것들의 공통점이 "파일"이 들어간다는거구요...
즉 파일을 어떤 디렉토리에 마운트시켜서 일반 파일시스템쓰듯이 쓰도록하는것...
방식이 /dev/loopX 의 장치들을 파일에 매핑시키고, 이 loopback 장치를 다시 디렉토리에 매핑.
(제가 이런 내용까지 왜 쓰냐면요... 찾아보지도 않고 질문했다 그럴까봐요.. -_-)
근데 현재 상황으로는 파일을 적용시킬곳이 없더군요.
여러가지 해봤는데, 기억나는 몇가지만 적겠습니다.
1>
mount -o loop=/dev/loop1 /dev/mtdblock3
mount /dev/loop1 /test #요렇게하면 write-protected되어서, read-only로 마운트 되었다고 나옵니다.
mount -o remount,rw /test
2>
1>에서 첫번째줄에 /dev/mtdblock3대신 /nate 사용
3>
mount -o loop=/dev/loop1,rw /dev/mtdblock3 /test
4>
mount -o remount,rw /nate
5>
mount -t nfs localhost:/nate /test
# 이건 정확히 기억이안나네요.. nfs를 이용한 loopback 마운트 어쩌고저쩌고던데...
# "rpc: 받을수 없음; 연결이 거부됨"이라는 에러가 뜨네요
6>
mount --bind /nate /test
# mount로 확인하면 rw로 나옵니다만, 역시 쓰기는 안됨.
기억나는게 이거밖에없네요... 훨씬 많은데.. -_-;
어쨋든 위에꺼 다 안됩니다... 에러 뜨던가... write-protected 되었다는 말만나올뿐...
거의 3일동안 밤마다 자료찾아가면서 해봤는데, 제가 머리가 나뿐건지 더이상해볼게 없네요..-_-
처음에는 loopback device라해서 계속 파일쪽으로 어떻게든 연결시켜 볼려했지만.... 연결시킬곳이 안보이고..
디렉토리나 다른 장치로 연결해도 write-protected 되었다고만 나오고..
괜히 mount로 헛다리 집은게 아닌지...
잘때마다 머리가 혼-_-란 스럽네요.. :cry:
어차피 전화도 별로 안와서 mp3 벨소리 크게 필요는 없지만, 안되니 자꾸 스팀이-_-;;
부디 조언 :idea: 을....
---------------
추가...
cramfs 라는 파일시스템 자체가 read-only 라는군요..
혹시 파일시스템을 다른것(ex. ext2 or else)으로 바꿀수 있는 명령어 같은게 있는지요?
말씀하신거와 같이 cramfs는 읽기전용 파일시스템 입니다.일종의
말씀하신거와 같이 cramfs는 읽기전용 파일시스템 입니다.
일종의 압축 파일시스템이고 읽기는되지만 쓰기가 안됩니다.
따라서 어떤 꽁수나 삽질을 하시더라도 파일시스템의 내용을 변경 할 수 없습니다 -.-;
만약에 그 내용을 바꾸고 싶다면 새로 이미지를 만들어서 파티션에다 직접 써야합니다.
일단 원하는 파티션을 cat이나 dd로 이미지를 뜨십시오.
cat /dev/mtdblock3 > /tmp/test.cramfs
또는
dd if=/dev/mtdblock3 of=/tmp/test.cramfs
이렇게 뜬 test.cramfs 이미지를 pc같은데로 옮기고 마운트 하십시오.
mount -o loop test.cramfs /mnt/test
그다음 쓰기 가능한 디렉토리로 복사합니다.
cp -ar /mnt/test /tmp/test
그다음 내용을 고칩니다.
그리고 cramfs 를 새로 만듭니다.
cd /tmp/test
mkcramfs ./ ../test1.cramfs
이렇게 만든 test1.cramfs를 다시 mtd디바이스에 씁니다.
cat test1.cramfs > /dev/mtdblock3
또는
dd if=test1.cramfs of=/dev/mtdblock3
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
찾아보니 cramfs 라는게 공식적인(??) 거군요..전 그냥 g
찾아보니 cramfs 라는게 공식적인(??) 거군요..
전 그냥 gmate사에서 만든 파일 시스템인줄로만알고....
검색을 해볼걸 그랬네요...
그리고 이미지를 뜨는거였군요...
어떻게든 파일이랑 연결시킬려고 생각해봤는데...
이미지로 뜨는건 생각을 못했네요...
역시 머리에 한계가.. ㅠ.ㅠ
답변 감사합니다.. ^^;
요피 == 재미있는 장난감
^^
여기 링크를 자꾸 찾으시는거 같은데...이 글 지울려고하다가 그냥
여기 링크를 자꾸 찾으시는거 같은데...
이 글 지울려고하다가 그냥 답변으로 추가하겠습니다.
윗분이 가르쳐주신 방법중에 마지막부분이 요피에서는 안됩니다.
굳이 요피에서 쓰실려면 /nate 파일시스템 자체를 수정해서 os installer의 네이트 파일시스템 쓰기던가... 그걸로 설치해주시면 될겁니다.
(잘못되도 책임 못 짐-_-)
쉬운 방법은
1. 파일을 만듭니다.
2. ext2로 포맷합니다.
3. 이 파일에 음악파일을 집어넣습니다.
4. 이 파일을 벨소리가 있는 디렉토리에 loopback 옵션을 주고 마운트 시킵니다.
mount -t ext2 만든파일 벨소리디렉토리 -o loop
아시겠지만 여기서 벨소리 디렉토리는 /nate/share/bells 입니다.
더 쉬운 방법은
kyug의 tip & tech에 파일 내용 수정해주는게 있죠...
이런 내용이 알려져서 별로 좋을게 없을듯한데요..
저도 다른 분이 알려줬기에 답변으로 달고있습니다만...
예전에 그 글이 올라오고부터 그냥 쉬쉬하는 분위기로 갔기때문에...
흠.... 설마........ 여기까지 오지 않겠죠-_-ㅋ 그 누군가들이.. -_-;;
요피 == 재미있는 장난감
^^
댓글 달기