# Dateien beim booten austauschen

## xraver

Hallo,

ich möchte mir ein init-Script schreiben welches mir 2 Dateien beim Start ausstauscht.

Es sind die /etc/fstab und die xorg.conf.

Bei der xorg.conf sehe ich auch kein Problem, aber bei der fstab.

Meine Frage, vor welchen Dienst muss mein init-Script gestartet werden damit die fstab getauscht wird?

Ist das überhaupt möglich die Datei auszutauschen bevor die Datei gelesen wird?

Ich hoffe ihr könnt mir folgen und ein Dev oder script-Hacker kann sich dazu äussern  :Wink: .

Klar, ich könnte auch nach der Trail&Error Methode vorgehen - aber muss ja nicht sein  :Wink: .

----------

## Wolle

 *xraver wrote:*   

> Hallo,
> 
> iMeine Frage, vor welchen Dienst muss mein init-Script gestartet werden damit die fstab getauscht wird?
> 
> 

 

Ich würde es nach checkroot machen - das ist eh fast der erste (da steht "before *" drin).

wolle:/etc/init.d $ grep --colour=none checkroot *

checkfs:        need checkroot modules

crypto-loop:     need checkroot modules

device-mapper:          # a dependency loop with checkroot (before *)

device-mapper:          before checkroot

hostname:       need checkroot

modules:        need checkrootIch würde also mal auf "vor hostname" und "vor modules" tippen. Ob das so klappt kann ich nicht sagen.

----------

## blu3bird

```
need checkroot

before localmount
```

des sollte genau das sein was du brauchst.

ps: warum willste des eigentlich machen? ne art auto-detect für ne livecd?

----------

## xraver

Danke, werd es gleich mal antesten.

 *blu3bird wrote:*   

> 
> 
> ps: warum willste des eigentlich machen? ne art auto-detect für ne livecd?

 

So in der Art, nur für eine VM.

Ich möchte Gentoo nativ und auch unter Windows mit VMware starten können da ich öffters auch mal gerne Spiele und nicht immer wieder neu booten möchte, blos weill ich mal was brauch. Unter Vista funktioniert auch der Zugriff auf ext3 Platten nicht so schön wie unter XP mit IFS. (BlueScreens und co  ;()

Nativ verwendet Gentoo bei mir SATA Platten, VMware bietet mir dagegen nur die Platte als IDE an und ide-scsi will nicht so wie ich mag.

Deswegen soll das init-script die fstab und xorg.conf austauschen, je nach verwendeter Bootoption - oder am besten selbst erkennen ob Gentoo nun in einer VM oder nativ läuft.

----------

## xraver

 *blu3bird wrote:*   

> 
> 
> ```
> need checkroot
> 
> ...

 

Funktioniert nicht. 

Mein script wird später ausgeführt.

Selbst before checkroot geht nicht  :Sad: .

```

* Services 'checkroot' and 'vmswitch' have circular

* depency of type 'ibefore'; continuing...
```

Hat jemand ne Idee wie ich mein Script vor checkroot ausführen kann?

Oder bleibt mir nichts anderes ürbig als mein script in checkroot einzubauen?

//edit

Nun habe ich in 

/etc/init.d/vmswitch

```
before *
```

und in 

/etc/init.d/checkroot

```
after vmswitch
```

 eingetragen. Trotzdem startet checkroot zuerst.

Ich kann da eintragen was ich will. checkroot startet immer zuerst.

So langsam nervt mich das init-System von Gentoo.

Was ist da los, Bug oder bin ich einfach zu blöd?!?

//edit

Ok, so langsam komm ich dahinter warum checkroot als erstes ausgeführt werden muss.

Das Dateisystem ist bis checkroot nur lesbar, ein Script vorher könnte also nicht viel ausrichten.

Da werd ich wohl um "dreckige Hacks" nicht herumkommen.

----------

## TheSmallOne

 *xraver wrote:*   

> Nativ verwendet Gentoo bei mir SATA Platten, VMware bietet mir dagegen nur die Platte als IDE an und ide-scsi will nicht so wie ich mag.
> 
> Deswegen soll das init-script die fstab und xorg.conf austauschen, je nach verwendeter Bootoption - oder am besten selbst erkennen ob Gentoo nun in einer VM oder nativ läuft.

 

Was spricht gegen die Verwendung von Filesystem-Labels?

Ich habe meine Festplatte alle in Wechselrahmen, die ich öfter mal umstecke und habe so ziemlich alle Dateisysteme mit LABEL=name in der /etc/fstab eingetragen.

Auch xorg.conf austauschen scheint mir nicht wirklich nötig; schließlich kann man auch alle nötigen Definitionen in einer Version vereinen.

----------

## xraver

 *TheSmallOne wrote:*   

> 
> 
> Was spricht gegen die Verwendung von Filesystem-Labels?
> 
> 

 

Stimmt, daran hab ich ja noch gar nicht gedacht. Danke, das werd ich gleich mal antesten.

Bin schon soweit das /etc/init.d/checkroot ein script source´t welches / als rw remountet und die fstab austauscht.

Ich glaub die Mühe und Nerven hätt ich mir sparen können  :Wink: .

Danke!

 *TheSmallOne wrote:*   

> 
> 
> Auch xorg.conf austauschen scheint mir nicht wirklich nötig; schließlich kann man auch alle nötigen Definitionen in einer Version vereinen.

 

Daran hab ich gedacht  :Wink:  - aber ich dacht mir dann - wenn du schon files tauschen musst, dann kann die xorg.conf auch gleich mit getauscht werden.

----------

## Polynomial-C

 *xraver wrote:*   

> Nativ verwendet Gentoo bei mir SATA Platten, VMware bietet mir dagegen nur die Platte als IDE an und ide-scsi will nicht so wie ich mag.
> 
> Deswegen soll das init-script die fstab und xorg.conf austauschen, je nach verwendeter Bootoption - oder am besten selbst erkennen ob Gentoo nun in einer VM oder nativ läuft.

 

Was spricht denn dagegen, per udev einfach allen hd[a-z]*-devices entsprechende sd[a-z]* symlinks zu verpassen?

So habe ich das gemacht, als ich bei meinem Notebook neuere Kernels auf libata umgestellt habe, jedoch noch einen alten Kernel mit den alten IDE-Treibern als "Notfallkernel" behalten wollte. Bei mir habe ich das dann in etwa so gelöst:

Die Datei /etc/udev/rules.d/10-local.rules erstellen und mit folgendem Inhalt gefüttert.

```
SUBSYSTEMS=="ide", KERNEL=="hda*", SYMLINK="sda%n"

SUBSYSTEMS=="ide", KERNEL=="hdb*", SYMLINK="sdb%n"

SUBSYSTEMS=="ide", KERNEL=="hdc*", SYMLINK="sdc%n"

usw...
```

Das erscheint mir jedenfalls ne sauberere Lösung zu sein, als beim Booten die fstab auszutauschen.

Grüße

Poly-C

----------

