# Populating /dev

## Christian99

Ich hab mir jetzt eine SSD bestellt, auf die ich meine root partition umziehen werde. ich wollte das ganze auf eine vielleciht etwas ungewöhnliche methode machen: nicht indem ich eine gentoo base3 reinpacke, sondern ich wollte es von meinen laufenden system aus mit "ROOT="/path/to/SSD" emerge portage..." machen. das sollte denke ich auch ganz gut funktionieren. Nur: was muss in /dev rein? da ist soviel drin, ich glaub nicht dass das alles von udev kommt. und wenn ich das jetzige kopiere dann sind ja die ganzen von udev angelegten sachen mit kopiert. Was muss ich denn alles da rein packen (und wie?  :Wink:  ) was nicht von udev angelegt wird?

Kennt sich da jemand mit aus?

Schöne Grüße

Christian

----------

## arfe

man MAKEDEV

----------

## Finswimmer

Darf man fragen, was das soll?

Du änderst doch nur die Festplatte, also kopiere doch alles per rsync rüber, installiere den MBR und fertig.

So habe ich es auch mit meinen beiden Systemen gemacht, die eine SSD spendiert bekommen haben.

----------

## Christian99

umstieg auf gcc-4.6 und lto. finde das ist grad ne gute gelegenheit. außerdem hoffe ich so, dass mal ein paar sachen aufgeräumt werden, dateien von deinstallieretn paketen die portage liegen lässt und so.

----------

## Josef.95

Christian, ich kann dein vorhaben auch nicht so recht verstehen. Kopiere dein / doch einfach auf die neue Platte, und gut ist..  :Wink: 

Mache das aber am besten im nicht gebooteten Zustand - zb von einer Live-CD aus.

Oder, wenn du wirklich neu installieren willst - nutze dann doch am besten ein aktuelles stage3 Archiv. 

Und wegen /dev/

schau da mal rein wenn das System nicht gestartet ist, dann siehst du den unterschied.

----------

## Christian99

Naja, ich will mein System hauptsächlich neu bauen mit gcc-4.6 und lto. wie gesagt, ich dachte das bietet sich jetzt an.Last edited by Christian99 on Thu Feb 02, 2012 3:10 pm; edited 1 time in total

----------

## mv

Normalerweise kommt schon das ganze /dev von udev. Für openrc brauchst Du nur ein minimales (IIRC null und console), vielleicht inzwischen auch gar nichts mehr.

Wenn Du Dein "original"-dev sehen willst: 

```
mkdir /root/irgendwas

mount --bind / /root/irgendwas

ls /root/irgendwas/dev

umount /root/irgendwas
```

----------

## Christian99

ok, danke für die info. lustigerweise ist in dem "original" dev verzeichnis ein paar sachen drin die nicht in dem "in Betrieb" sind. Aber es ist doch noch sehr voll.

Ich werds dann einfach mal mit einem leeren probieren und schauen was passiert  :Wink: 

----------

## Josef.95

 *Christian99 wrote:*   

> Ich werds dann einfach mal mit einem leeren probieren und schauen was passiert 

  Hm nein, mit einem leeren /dev wirst du das System relativ sicher nicht boten können.

Ich würde zumindest 

```
mknod --mode=600 console c 5 1

mknod --mode=666 null c 1 3

und eventuell noch

mknod --mode=666 zero c 1 5
```

 anlegen.

----------

## Polynomial-C

Oder einfach im Kernel devtmpfs aktivieren. Dann klappts auch mit einem leeren /dev. devtmpfs wird mit >=udev-176 sowieso zwingend erforderlich sein. Ab dieser Version legt udev keine devicenodes mehr selbständig an, sondern kümmert sich nur noch um die korrekten Berechtigungen.

----------

## Christian99

hallo, habs heut nun mal geschafft von der SSD zu booten, mit einem leeren /dev und devtmpfs im kernel. laufen tut er auch, hab nur das problem, wenn ich grub2-install machen möchte:

```
grub2-install /dev/sdc 

/sbin/grub2-probe: Fehler: cannot find a device for /boot/grub2 (is /dev mounted?).
```

sdc ist die ssd, auf der ist eine partition btrfs, auf die soll grub2 drauf.

hat das was mit dem /dev zu tun? wird ja von grub2-probe gesagt. Hat da jemand eine IDee?

----------

## toralf

```
/dev/zero
```

ist notwendig, alels andere liefert udev

----------

## Christian99

/dev/zero ist auch vorhanden. das kanns wohl nicht sein...

----------

## Christian99

nach update auf grub-2.0-beta1 sieht die fehlermeldung etwas anders aus:

```
/boot/grub2 not readable

/usr/sbin/grub2-probe: error: failed to get canonical path of /dev/root.
```

/dev/root ist nicht vorhanden. Wo bekomme ich das her?

----------

## Josef.95

Hach was waren es für schöne Zeiten, als man den MBR noch einfach manuell mit der GRUB-Shell installieren konnte...  :Wink: 

Hast du vor dem magischen grub2-install Befehl daran gedacht die /etc/mtab zu aktualisieren? 

```
# grep -v rootfs /proc/mounts > /etc/mtab
```

----------

## Christian99

nein, hatte ich nicht gemacht, ich hab ja das system ganz normal gebootet, deswegen stand das sowieso drin. ich hab mal /dev/root als symlink auf /dev/sdc1 angelegt und es hat funktioniert. aber das mit dem symlink ist ja wohl eher nur ein workaround, als eine richtige abhilfe...

----------

## misterjack

nicht ohne grund ist grub2 nicht für x86/amd64 freigegeben, also beschwer dich nicht  :Smile: 

----------

## Christian99

emerge grub:0

und anschließendes

```
grub-install /dev/sdc

/dev/root: Not found or not a block device.
```

würden dich glaub ich wiederlegen, dass es an grub2 liegt  :Wink: 

----------

## Max Steel

grub1 kann man immer per grub-shell (manuell) installieren.

----------

## Christian99

aber es geht ja wohl mehr darum, dass mir /dev/root fehlt und nicht warum grub soviel besser ist als grub2

----------

