To mount the hard drive on boot up you can just add an entry into /etc/fstab, something like:
LABEL=hard-drive /media/hard-drive ext4 defaults 0 0
Instead of ext4 you may have to use the filesystem on your hard-drive.
To execute the clear command on startup just create a systemd Unit with:
rpi ~$ sudo systemctl --force --full edit clear-screen....
my company's current solution for a kiosk is a root crontab
@reboot bash /home/pi/pi-kiosk/autostart.sh
inside /home/pi/pi-kiosk/autostart.sh :
omxplayer -o hdmi /home/pi/pi-kiosk/kiosk/* 2>> /home/pi/pi-kiosk/error.log 1> /dev/null
the pi-kiosk folder is setup as a samba share that we can just drag and ...
Likely what's happening is vlc is trying to start before Xorg does. For autostarting applications that require X to already be running, add your vlc command line to ~/.config/lxsession/LXDE-pi/autostart.
Alternatively, use a video player that does not require a X session, such as omxplayer.