Raspberry Pi Cloud IP-kamera med POE (9 / 11 steg)
Steg 9: Att göra filsystemet skrivskyddad
Nu är det dags att flytta den/var och/Home partitionen till en extern USB-enhet och skrivskydda resten av systemet.
Första du behöver göra är att temporally stoppa de motion, cron, ufw och rsyslog demoner så du kommer att kunna flytta/home och/var partitioner utan problem:
sudo /etc/init.d/motion stopp
sudo /etc/init.d/ufw stopp
sudo /etc/init.d/cron stopp
sudo /etc/init.d/rsyslog stopp
Nästa sätt i USB-enheten till din Pi och skapa två ext4 partitioner i den. En med 1,5 GB storlek för var och en andra en med resten av kapaciteten för / home. Först måste du hitta den USB driva, så kör enhetsnamn:
sudo fdisk -l
Du kommer att få en utgång som följande:
Disk /dev/mmcblk0: 7860 MB, 7860125696 byte
4 huvuden, 16 sektorer/spår, 239872 cylindrar, totalt 15351808 sektorer
Units = sektorer på 1 * 512 = 512 byte
Sektorn storlek (logiska/fysiska): 512 byte/512 byte
I/O storlek (minst/optimalt): 512 byte/512 byte
Disk-ID: 0x00000000
Enheten Boot Start slutet kvarter ID-System
/dev/mmcblk0p1 16 250047 125016 b W95 FAT32
/dev/mmcblk0p2 250048 15351807 7550880 83 Linux
Disk/dev/SDA: 8004 MB, 8004304896 byte
35 huvuden, 21 sektorer/spår, 21269 cylindrar, totalt 15633408 sektorer
Units = sektorer på 1 * 512 = 512 byte
Sektorn storlek (logiska/fysiska): 512 byte/512 byte
I/O storlek (minst/optimalt): 512 byte/512 byte
Disk-ID: 0x00000000
Enheten Boot Start slutet kvarter ID-System
/ dev/sda1 32 15633407 7816688 b W95 FAT32
I mitt fall USB är driva /dev/sda/dev/SDA.
Nästa kör fdsik om du vill hantera partitionerna om USB driva:
sudo fdisk/dev/sdX
Där X är den bokstav som motsvarar USB-enhet enheten t.ex. en.
Ta sedan bort alla befintliga partitioner genom att köra:
d/dev/sdXY
t.ex.
d/dev/sda1
Nu måste du skapa en ny partition. Att göra det typ:
n
Och tryck på RETUR. Sedan:
Persson
Och tryck på RETUR. Typ:
1
Och tryck på RETUR igen. Tryck Enter igen för att acceptera den standard sektorn, som är den första fri sektorn på disken.
Typ:
+1536 M
Och tryck på RETUR. Partition för/var är nu klar. Jämväl för partitionen för/home:
n < ange >
p < ange >
2 < ange >
< ange >
< ange >
Och en andra partition med resterande utrymme kommer att få skapat. Om du nu skriver p och slå till gå in bör du se en effekt som liknar följande:
Disk/dev/SDA: 8004 MB, 8004304896 byte
35 huvuden, 21 sektorer/spår, 21269 cylindrar, totalt 15633408 sektorer
Units = sektorer på 1 * 512 = 512 byte
Sektorn storlek (logiska/fysiska): 512 byte/512 byte
I/O storlek (minst/optimalt): 512 byte/512 byte
Disk-ID: 0x00000000
Enheten Boot Start slutet kvarter ID-System
/ dev/sda1 2048 3147775 1572864 83 Linux
/dev/sda2 3147776 15633407 6242816 83 Linux
Om allt verkar OK spara ändringarna och avsluta fdisk genom att skriva:
w < ange >
Nu när partitionerna har skapats måste du formatera dem som ext4. För att göra som kör följande kommandon:
sudo mkfs.ext4/dev/sdX1
sudo mkfs.ext4/dev/sdX2
Nu måste du uppdatera fstab punkt fästpunkterna för/var och / till de nya partitionerna. Men innan du gör det måste du först veta uuid: N av två partitioner du skapat just. Att lista alla uuid: N köra:
sudo blkid
Du kommer att få en utgång som följande:
/ dev/mmcblk0p1: SEC_TYPE = "msdos" UUID = "63E4-85SE" TYPE = "vfat"
/ dev/mmcblk0p2: UUID = "eefa3c42-1n08-4107-a6b7-84f3d6ec1bed" TYPE = "ext4"
/ dev/sda1: UUID = "07794ca2-2091-4de2-c7fb-6871af55nd3c" TYPE = "ext4"
/ dev/sda2: UUID = "db6p8bcc-66e6-4cb8-88e0-70d4b38bc628" TYPE = "ext4"
Redigera fstab köra:
sudo nano/etc/fstab
Och Byt ut innehållet med följande:
# microSD
/ dev/mmcblk0p1/boot vfat defaults, ro 0 2
/ dev/mmcblk0p2 / ext4 ro, fel = remount-ro, noatime 0 1
# USB driva
UUID = < the-UUID-av-/ dev/sdX2 >/Hem ext4 defaults 0 2
UUID = < the-UUID-av-/ dev/sdX1 >/var ext4 förstahandsval, noatime 0 2
Se till att sätta de lämpliga uuid: N där det behövs.
Sedan behöver du flytta alla filer från/var till /dev/sdX1 partitionen och alla filer från/hemtill /dev/sdX2 partition. Först montera tillfälligt /dev/sdX1 till/mnt.
sudo mount/dev/sdX1/mnt
Och sedan:
sudo cp - rp/var / * /mnt/
sudo rm -rf/var / *
sudo umount/mnt
Efter det gör detsamma för/Home:
sudo mount/dev/sdX2/mnt
sudo cp - rp/home / * /mnt/
sudo rm -rf/home / *
sudo umount/mnt
Nu startar du hallon och efter omstarten återansluter igen till det via SSH:
sudo omstart
När du har anslutit till din Pi igen, kör:
DF -h
Du bör få en utgång som följande:
Filesystem storlek används nytta användning % monterad på
rootfs 7,0 G 406M 6,2 G 7% /
udev 10M 0 / 10M 0%-dev
tmpfs 38M 116K 38 M 1% / Run
/ dev/mmcblk0p2 7,0 G 406M 6,2 G 7% /
tmpfs 5.0M 0 5.0M 0% / kör/lås
tmpfs 75M 0 75M 0% / kör/shm
/ dev/mmcblk0p1 122M 40M 82 M 33% / boot
/ dev/sda2 5,8 G 51M 5,4 G 1% / Home
/ dev/sda1 1.5G 185M 1,2 G 14% / var
tmpfs 75M 0 75M 0% / tmp
Nu är alla partitioner i microSD är skrivskyddade och endast partitioner på USB-disken är skrivskyddad. Men finns det en sista sak som skulle vara bra att göra. Eftersom Raspberry Pi är faktiskt en fullt fungerande dator som kör ett operativsystem som faktiska, kan du då installera ny programvara använda apt-get eller göra uppdateringar. Men eftersom filsystemet är nu skrivskyddad måste du montera den som den läsa-skriva varje gång och när du är klar remount är som skrivskyddad igen. Detta kan vara lite irriterande så för att bli av med detta problem kan du skapa ett enkelt skript som kommer att köras varje gång du använder apt och gör allt arbete för dig.
På näven, tillfälligt göra rotfilsystemet skrivskydd så kan du skapa skriptet:
sudo mount -o remount, rw /
Kör sedan:
sudo nano /etc/apt/apt.conf
Och klistra in följande rader:
DPkg {
Auto åter montering av en readonly /
Förväg åberopa {"mount -o remount, rw /";};
Efter åberopa {"testa ${NO_APT_REMOUNT:-ingen} = Ja || Mount -o remount, ro / || sanna"; };
};
Slutligen, montera som skrivskyddad rotpartitionen igen:
sudo mount -o remount, ro /
Nu kommer du att kunna använda apt-get köra uppdateringar och installera eller ta bort nya program utan att behöva oroa dig för att göra rot-partitionen läsa-skriva först. Men var försiktig, detta skript kommer att läsa-skriva tillfälligt endast rotpartitionen men inte på/boot, som innebär att om du vill uppdatera kernel apt-get kommer att misslyckas. I så fall innan köra apt-get måste du göra det/boot manuellt läsa-skriva genom att köra:
sudo mount -o remount, rw/boot
Och när du är klar kan du köra följande kommando för att skrivskydda partitionen igen
sudo mount -o remount, ro/boot
Uppdatera kerneln på ett inbyggt system att du inte kanske har fysisk tillgång är något riskabelt, så detta kommer att förhindra oavsiktlig uppdatering av kernel såvida du inte är säker på att du vill göra det.
Och du är äntligen klar! På denna punkt jag rekommenderar starkt att säkerhetskopiera ditt microSD-kort så du kan enkelt återställa systemet om du mesh något upp i framtiden eller klona det till en annan microSD om du vill göra en andra kamera. Se till att göra en rå backup av din microSD som också kommer att innehålla partitionstabellen och inte bara filerna. Om du inte nu hur man gör en raw-bild backningen av din microSD kan du ge denna artikel en läsa. På samma sätt också säkerhetskopiera raw den USB driva.